區塊鏈 基於Rails開發以太坊

2021-07-25 04:05:59 字數 3499 閱讀 3735

基於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

google

。檢查環境,保證

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樹的變種,功能更強大.可...

以太坊 理解區塊鏈

目錄 一直都說在聽說區塊鏈,都說是什麼劃時代的技術,一種顛覆性的技術,繼人工智慧後的一種革命性的技術。各種光鮮詞彙全用在區塊鏈上,就一直沒明白它到底高深在何處?今天的網際網路世界可以說是資訊網際網路,以前一直說地球村,網際網路將地球變小了,你在地球的這邊可以隨時和地球的另一邊進行交流,如果說資訊網際...