日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

以太坊私链搭建

發布時間:2023/12/1 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 以太坊私链搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Window上安裝ubuntu系統搭建私有鏈操作步驟

modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

前提是 geth 已經安裝,可以參考上一節內容講解 Step 1: 建立目錄和genesis.json 在命令行模式創建一個目錄,例如geths ,這里geths目錄命名任意。 命令:mkdir geths 然后在ubuntu目錄下會出現一個geths文件夾。 繼續進入到該文件夾目錄下,創建一個文件,genesis.json, 文件名也可以任意。 genesis.json 文件內容: (注意版本太早的復制進去,運行會出錯,可以適當更改內容) [html] view plaincopy
  • ???{??
  • ??"config":?{??
  • ????????"chainId":?666,??
  • ????????"homesteadBlock":?0,??
  • ????????"eip155Block":?0,??
  • ????????"eip158Block":?0??
  • ????},??
  • ??"alloc"??????:?{},??
  • ??"coinbase"???:?"0x0000000000000000000000000000000000000000",??
  • ??"difficulty"?:?"0x20000",??
  • ??"extraData"??:?"",??
  • ??"gasLimit"???:?"0x2fefd8",??
  • ??"nonce"??????:?"0x0000000000000042",??
  • ??"mixhash"????:?"0x0000000000000000000000000000000000000000000000000000000000000000",??
  • ??"parentHash"?:?"0x0000000000000000000000000000000000000000000000000000000000000000",??
  • ??"timestamp"??:?"0x00"??
  • }??
  • Step 2: 執行命令,創建創世區塊 切換回命令行,執行命令,制造創世區塊 進入到geths 目錄下,執行命令 geth --datadir "./" init genesis.json 此時當前geths目錄下面會新增出兩個文件夾geth和keystore geth中保存的是區塊鏈的相關數據 keystore中保存的是該鏈條中的用戶信息 Step 3:創建自己的私有鏈條 geth --datadir "./" --nodiscover console 2>>geth.log 注意這里輸出打印日志到log文件中 Step 4:在自己的私有鏈條上創建用戶 輸入命令eth.accounts, 我們會發現返回值為[],這是因為此時雖然以太坊的私有鏈已經被創造出來,但還沒有任何賬戶。 輸入命令personal.newAccount("xxx"),該命令將創造一個新的用戶,該用戶的密碼是xxx. 當然用戶也可以將xxx?改為123,或者123456,或者任意密碼 再次輸入命令?eth.accounts, 我們會發現一個新的用戶被創建了出來,這就代表我們已經創建了一個賬戶,重personal.newAccount()?&?eth.accounts?我們可以創建若干個賬戶出來 Step 5: 最重要的一步來了,開始挖礦 在命令行中執行命令?miner.start(), 開始在我們的區塊鏈上進行挖礦 一直等到100%。這個以太坊私有鏈就會正式啟動,并持續不斷的生成出以太坊來。 注意點: 1. 挖礦挖到的ether幣會默認保在第一個賬戶中,即eth.acccounts[0]中。 2. 挖礦是執行智能合約的基礎。如果停止挖礦的話,不僅以太幣會停止生成,所有智能合約的調用也會不起作用。 3. 如果真的要停止挖礦,可以執行命令miner.stop()來停止挖礦 4. 按上面的命令,應該是可以實現以太坊挖礦的。如果不行的話,有可能就是之前有存在的鏈,此時應該刪除之前的數據。即刪除~/.ethash文件夾和里面的文件即可。 5. 通常有人出現miner.start()返回null,,并且沒有信息刷屏,就停留在null,, 原因回到step 3 你將輸出結果打印到日志log,所以無法顯示,exit 退出, 重新運行geth --datadir "./" --nodiscover console 即可。 Step6: 挖礦啟動后,查看主賬戶的以太幣數量 acc0 = eth.accounts[0] eth.getBalance(acc0) 結果只要不為0,那就說明挖礦成功! 退出挖礦:miner.stop() 退出當前geth ,執行:exit 重新運行geth, 直接進入到step 3, 不需要執行前兩步了。

    (4)創建一個新賬戶

    personal.newAccount(‘密碼')

    ?

    (5)賬戶賦值給某一個變量

    user1 = persnal.account[0]

    ?

    (6)上面提到過日志文件,我們再重開一個終端,我們使用以下命令打開日志:

    tail -f? log.log

    (7)在geth控制臺中啟動挖礦:

    miner.start()

    ?

    (8)停止挖礦

    miner.stop()

    ?

    (9)查看賬戶的賬戶余額

    eth.getBalance(user1)

    ?

    (10)

    user1向user2轉移以太幣

    eth.sendTransaction({from: user1,to: user2,value: web3.toWei(3,"ether")})

    ?

    (11)解鎖賬戶后

    eth.unlockAccount(user1,"123")

    ?

    ?

    2)下面我們來實現下在geth中編譯一個智能合約

    ?

    [plain]?view plaincopy
  • contract?test?{??
  • ????function?multiply(uint?a)?returns(uint?d)?{??
  • ????????return?a?*?7;???
  • ????}???
  • }??
  • 在geth中執行如下:

    ?

    source = "contract test { function multiply(uint a) returns(uint d) { return a * 7; } }"

    然后編譯該合約:

    contract = eth.compile.solidity(source).test

    編譯后的結果如下:

    code:就是合約編譯后的字節碼文件,在以太坊虛擬機EVM上運行的就是這個字節碼;

    abiDefinition:其實就是合約的二進制接口,可用來外部調用;

    其他的一些參數也都是可以見名知意了。

    ?

    然后就要獲取合約的abi(其實該真正要用的abi可以通過https://ethereum.github.io/browser-solidity這個在線編譯器獲得):

    abi=[{"constant":false,"inputs":[{"name":"a","type":"uint256"}],"name":"multiply","outputs":[{"name":"d","type":"uint256"}],"payable":false,"type":"function"}]

    ?

    然后是訪問abi接口:

    MyContract=eth.contract(abi)

    ?

    ?

    然后獲得合約的實例:

    myContract=MyContract.new({from:user1,data:contract.code})

    如果提示你沒有解鎖的話,只要解鎖即可。

    ?

    調用函數傳遞參數

    函數做了乘以7的操作,輸出符合預期。合約執行成功。

    ?

    ? ? ? 以上就是對geth最基本的運用,我們會在以后的開發中學習geth更為深入的功能。

    轉載于:https://www.cnblogs.com/felixzuo/p/9018803.html

    總結

    以上是生活随笔為你收集整理的以太坊私链搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。