基於ruby-on-rails開發以太坊的應用
一、 理解以太坊的網路架構
其中node執行
geth
或者eth
,彼此通過
30303
埠進行p2p的連線,其上執行的協議即俗稱挖礦協議,也即共識協議,包括幾個部分,廣播交易或訊息,同步區塊等。
node即節點,經常也稱
geth client
或geth server。
每個node對外提供
jsonrpc(8545埠)
或者ipc
埠,可以通過
node
從而對整個區塊鏈進行操作,如查詢帳戶資訊,部署合約等。
以太坊的wallet就是乙個通過
ipc介面來操作區塊鏈的典型應用
,但其並不是乙個
(分布式)。
底層即blockchain層,可以選擇ethereum或者
testnet
或者testrpc。
綠色部分根據框架選擇的不同會有較大的區別,但基本原理是相通的,即框架要提供操作區塊鏈結口的功能,最好是完整的協議棧。由於官方提供web3.js,這是乙個完整的基於
node.js
實現的rpc
協議介面,所以基於
js來實現的
web framework
框架會比較自然,比較知名的有
truffle
,官方推薦的是
meteor
。但理論上任何乙個框架,只要提供與
blockchain
互動的協議(即連線
8545 rpc
埠),都可以用於實現
,並且超過
80%的部分是傳統
web或移動應用開發內容。
本文**如何基於ruby on rails來實現和
blockchain
的操作。
三、 環境準備
作業系統ubuntu 16.04 amd64
step 1: 安裝
rvm/ruby/rails
#gpg --keyserver hkp: --recv-keys 409b6b1796c275462a1703113804bb82d39dc0e3
#\curl -ssl | bash
#rvm install 2.3
#gem install bundler
#gem install rails
step2:經過上述步驟應該已經將
rails 4.2.x
安裝至系統中,由於國內使用
ruby
的開發者不多,有限的群體應該都具備安裝環境這項基本技能,加之本文重點不在於介紹
rails
。檢查環境,保證
rails
執行正確。
$ rails –v
step3: 建立乙個
rails專案
$ rails new helloworld
step4: 安裝
nodejs
$ curl -sl | sudo -e bash -
$sudo apt-get install -y nodejs
$export path=/usr/bin:$path
step5: 安裝
testrpc
$ npm install –g ethereumjs-testrpc
step5b: 安裝
geth/eth
,這一步非必選,如果只是想體驗一下通過
rails
來操作區塊鏈,安裝
testrpc
已經足夠。
$ bash
$ bash
step6: 安裝
solc /
這一步也可以通過
npm來安裝,不贅述。
$ sudo add-apt-repository ppa:ethereum/ethereum
$ sudo apt-get update
$ sudo apt-get install solc
至此,乙個區塊鏈的測試開發環境基本ok.
四、 整合ethereum-ruby這個
gem到專案工程裡
step 1: 建立乙個新工程
$ rails new helloworld
step 2: 修改
gemfile
,增加ethereum
gem 'ethereum'
step 3: 執行
bundle install
$ bundle install
step 4: 執行
step 5: 啟動
rails console
$ rails c
並在console上建立與
step 6: 建立乙個簡單的智慧型合約
$ mkdir contracts
$ vi contracts/helloworld.sol
contract helloworld {
function register(address _a, bytes32 _b) {
step 7: 在控制台上部署和編譯
> con=ethereum::initializer.new 『contracts/helloworld.sol』, c
其執行結果如下:
此時如果切換到testrpc視窗,可以發現收到乙個
compilesolidity
的命令:
以太坊區塊鏈開發 私鏈
1.首先檢視我們兩個私鏈錢包的以太坊wei餘額,後續我們寫轉賬到區塊鏈位址 2.然後我們啟動私鏈 geth identity secbro etherum rpc rpccorsdomain datadir 私鏈資料資料夾絕對路徑 port 30303 rpcapi db,eth,net,web3 ...
以太坊區塊鏈
由私鑰控制.與 無關聯 可以建立發起交易給另外乙個賬戶.外部賬號之間的交易是轉賬 外部賬戶轉賬到合約賬戶可以啟用合約賬戶 被合約 控制,有關聯的 可以響應外部賬戶發起的交易 這裡需要注意的是這裡的merkle樹並不是位元幣的merkle樹,以太坊使用的是mpt樹.merkle樹的變種,功能更強大.可...
以太坊 理解區塊鏈
目錄 一直都說在聽說區塊鏈,都說是什麼劃時代的技術,一種顛覆性的技術,繼人工智慧後的一種革命性的技術。各種光鮮詞彙全用在區塊鏈上,就一直沒明白它到底高深在何處?今天的網際網路世界可以說是資訊網際網路,以前一直說地球村,網際網路將地球變小了,你在地球的這邊可以隨時和地球的另一邊進行交流,如果說資訊網際...