成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Mac環(huán)境搭建以太坊私有鏈

張金寶 / 3377人閱讀

摘要:原文地址石匠的為了測(cè)試以太坊智能合約,最方便的是在本地搭建一個(gè)以太坊私有鏈。網(wǎng)絡(luò)在連接到其他節(jié)點(diǎn)的時(shí)候會(huì)用到,以太坊公網(wǎng)的網(wǎng)絡(luò)是,為了不與公有鏈網(wǎng)絡(luò)沖突,運(yùn)行私有鏈節(jié)點(diǎn)的時(shí)候要指定自己的網(wǎng)絡(luò)。當(dāng)設(shè)置為表示使用發(fā)布該鏈。

原文地址: 石匠的blog

為了測(cè)試以太坊智能合約,最方便的是在本地搭建一個(gè)以太坊私有鏈。在mac上搭建環(huán)境主要需要以下步驟。

geth安裝

geth是go-ethereum的簡(jiǎn)寫,是一個(gè)用go語(yǔ)言編寫的以太坊客戶端,是在以太坊智能合約開發(fā)中最常用的命令行工具。
在mac上可以通過brew工具直接安裝:

brew tap ethereum/ethereum
brew install ethereum

詳細(xì)的安裝說明也可以查看官方文檔。

安裝完成后,可以再mac的terminal中,用以下命令測(cè)試工具是否正常:

geth -h
創(chuàng)建私有鏈創(chuàng)世區(qū)塊

為了創(chuàng)建一個(gè)自己測(cè)試的私有鏈,需要首先創(chuàng)建一個(gè)創(chuàng)世區(qū)塊,可以自定義創(chuàng)世區(qū)塊信息信息genesis.json:

{
    "config": {
        "chainId": 10,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "alloc": {},
    "coinbase": "0x0000000000000000000000000000000000000000",
    "difficulty": "0x20000",
    "extraData": "",
    "gasLimit": "0x2fefd8",
    "nonce": "0x0000000000000042",
    "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "timestamp": "0x00"
}

區(qū)塊參數(shù)釋義:

chainId: 指定了獨(dú)立的區(qū)塊鏈網(wǎng)絡(luò)ID。網(wǎng)絡(luò)ID在連接到其他節(jié)點(diǎn)的時(shí)候會(huì)用到,以太坊公網(wǎng)的網(wǎng)絡(luò)ID是 1,為了不與公有鏈網(wǎng)絡(luò)沖突,運(yùn)行私有鏈節(jié)點(diǎn)的時(shí)候要指定自己的網(wǎng)絡(luò)ID。不同ID網(wǎng)絡(luò)的節(jié)點(diǎn)無法相互連接。
HomesteadBlock:    當(dāng)設(shè)置為0表示使用Homestead發(fā)布該鏈。
nonce:    一個(gè)64位隨機(jī)數(shù),用于挖礦,注意它和mixhash的設(shè)置需要滿足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章節(jié)所描述的條件。
mixhash: 與nonce配合用于挖礦,由上一個(gè)區(qū)塊的一部分生成的hash。注意它和nonce的設(shè)置需要滿足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章節(jié)所描述的條件。
difficulty: 設(shè)置設(shè)置當(dāng)前區(qū)塊的難度,值越大挖礦就越難。
alloc: 用來預(yù)置賬號(hào)以及賬號(hào)的以太幣數(shù)量。
coinbase: 礦工賬號(hào)
timestamp: 設(shè)置創(chuàng)世塊的時(shí)間戳
parentHash: 上一個(gè)區(qū)塊的hash,創(chuàng)世塊就為0
extraData: 附加信息,自己可以填寫任意信息
gasLimit: 該值設(shè)置對(duì)GAS的消耗總量限制,用來限制區(qū)塊能包含的交易信息總和

找一個(gè)合適的目錄,執(zhí)行命令,創(chuàng)建創(chuàng)世區(qū)塊:

geth --datadir "./" init genesis.json

運(yùn)行成功后會(huì)在當(dāng)前目錄創(chuàng)建geth和keystore兩個(gè)文件夾

geth目錄:保存鏈上的區(qū)塊數(shù)據(jù)

keystore目錄:保存鏈上的用戶信息

私有鏈測(cè)試 啟動(dòng)私有鏈

前面建立創(chuàng)世區(qū)塊成功后,啟動(dòng)區(qū)塊鏈程序:

geth --datadir "./" --nodiscover console 2>>geth.log

相關(guān)參數(shù):

--nodiscover 使用這個(gè)參數(shù),你的節(jié)點(diǎn)就不會(huì)被其他人發(fā)現(xiàn),除非手動(dòng)添加你的節(jié)點(diǎn)。否則,就只有一個(gè)被無意添加到一個(gè)陌生區(qū)塊鏈上的機(jī)會(huì),那就是跟你有相同的genesis文件和networkID。
--maxpeers 0 如果你不想有人連上你的測(cè)試鏈,就用maxpeers 0?;蛘?,你可以調(diào)整參數(shù),當(dāng)你確切的知道有幾個(gè)節(jié)點(diǎn)要連接上來的時(shí)候。
--rpc 允許RPC操作你的節(jié)點(diǎn)。這個(gè)參數(shù)在Geth上是默認(rèn)的。
--rpcapi "db,eth,net,web3" 這個(gè)命令指示了允許通過RPC訪問的命令。默認(rèn)情況下,Geth允許web3。
--rpcport "8080"
--rpccorsdomain "http://chriseth.github.io/browser-solidity/"
--datadir "/home/TestChain1" 私有鏈存放路徑(最好跟公有鏈路徑不同)
--port "30303" 網(wǎng)絡(luò)監(jiān)聽端口,用來和其他節(jié)點(diǎn)手動(dòng)連接
--identity “TestnetMainNode" 用來標(biāo)識(shí)你的節(jié)點(diǎn)的,方便在一大群節(jié)點(diǎn)中識(shí)別出自己的節(jié)點(diǎn)

console指定了啟動(dòng)成功后進(jìn)入命令行界面,2>>將日志重定向到geth.log中,不然日志也會(huì)輸出到界面上,會(huì)和命令行界面混在一起,不方便命令行測(cè)試。

創(chuàng)建賬號(hào)

在命令行中創(chuàng)建賬號(hào):

>personal.newAccount()

然后會(huì)提示輸入賬號(hào)密碼,成功后會(huì)返回一個(gè)賬號(hào)地址,比如:0xc7ca64442b98cbfdb6f056841ccd40f8b7f054bb

也可以通過給newAccount傳遞密碼作為參數(shù),一次性完成創(chuàng)建:

>personal.newAccount("123456")
查看余額

查看賬戶的余額:

>eth.getBalance("0xc7ca64442b98cbfdb6f056841ccd40f8b7f054bb")
挖礦

開始挖礦:

>miner.start()

開始后,可以tailf geth.log看看挖礦初始化是否成功,以及挖礦過程細(xì)節(jié)。
停止挖坑:

>miner.stop()
轉(zhuǎn)賬

將一個(gè)賬戶的代幣轉(zhuǎn)移到另外一個(gè)賬戶,需要通過事務(wù)接口完成 eth.sendTransaction({from: acc0, to: acc1, value: amount}),比如:

>eth.sendTransaction({from: "0x01b5ecbcd8d46c1a9ee52e8b8a30bb6426dffb1b", to: "0xe6e4e20c95abc11dca8b3e9c292a34725bf89930", value: 20})

轉(zhuǎn)出的賬戶需要密碼解鎖,不然會(huì)發(fā)生類似以下錯(cuò)誤:

Error: authentication needed: password or unlock
    at web3.js:3143:20
    at web3.js:6347:15
    at web3.js:5081:36
    at :1:1

很好理解,如果轉(zhuǎn)出別人賬戶的代幣,不需要密碼驗(yàn)證,那就毫無安全可言了,可以通過以下方式,解鎖賬戶后繼續(xù)轉(zhuǎn)賬:

>personal.unlockAccount("0xab04698365ed79ef22921edad8f6f516ca40cecb")

轉(zhuǎn)賬完成后,可以通過eth.getBalance()查看余額,但是馬上查詢卻發(fā)現(xiàn)并沒有變化,這是因?yàn)閟endTransaction這是發(fā)起了一筆交易事務(wù),還沒有得到確認(rèn),只是將這個(gè)事務(wù)放到了待提交池中。區(qū)塊鏈的機(jī)制中是新創(chuàng)建區(qū)塊的時(shí)候,會(huì)就從事務(wù)池中找出所有事務(wù),進(jìn)行有效性驗(yàn)證,驗(yàn)證成功后進(jìn)行挖礦并將所有相關(guān)事務(wù)打包到區(qū)塊中,待新的去區(qū)塊成功加入到區(qū)塊鏈中后,之前的轉(zhuǎn)賬就得到了最終的確認(rèn)和永久固話。

所以,sendTransaction成功后,需要調(diào)用挖礦命令miner.start()創(chuàng)建區(qū)塊,然后再查看余額會(huì)發(fā)現(xiàn)轉(zhuǎn)賬金額變化已經(jīng)生效。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/95605.html

相關(guān)文章

  • 如何搭建以太私有

    摘要:本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接如何搭建以太坊私有鏈原文已更新,請(qǐng)讀者前往原文閱讀在開發(fā)以太坊時(shí),很多時(shí)候需要搭建一條以太坊私有鏈,通過本文一起看看如何在上進(jìn)行搭建。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:如何搭建以太坊私有鏈原文已更新,請(qǐng)讀者前往原文閱讀 在開發(fā)以太坊時(shí),很多時(shí)候需要搭建一條以太坊私有鏈,通過本文一起看看如何在Mac上進(jìn)行搭建。 寫在前面 閱讀本文前,你應(yīng)該對(duì)以太...

    J4ck_Chan 評(píng)論0 收藏0
  • Mac以太構(gòu)建本地私有網(wǎng)絡(luò),解決Ethereum Wallet無法連接本地私有庫(kù)

    摘要:打開私有鏈文件夾下的日志文件,大概在行左右有個(gè)的地址。命令行啟動(dòng)命令私有鏈地址這樣啟動(dòng)鏈接的倉(cāng)庫(kù)就是私有鏈了。 先上一張搭建好的私有鏈,Ethereum Wallet連接后的效果圖 showImg(https://segmentfault.com/img/remote/1460000013635764); 待安裝系統(tǒng)環(huán)境 系統(tǒng):macOS 10.13.2Ethereum Wallet版...

    whinc 評(píng)論0 收藏0
  • 搭建以太本地開發(fā)環(huán)境

    摘要:本文所搭建的環(huán)境是在上的開發(fā)環(huán)境,其他操作系統(tǒng)上與此非常相似,依然有參考價(jià)值。作為一枚區(qū)塊鏈開發(fā)工程師,本地的開發(fā)環(huán)境是必不可少的。因?yàn)槲覀兪撬接墟湥钥梢詫懙拇笠恍?,方便開發(fā)測(cè)試。 本文所搭建的環(huán)境是在 Mac 上的開發(fā)環(huán)境,其他操作系統(tǒng)上與此非常相似,依然有參考價(jià)值。 作為一枚區(qū)塊鏈開發(fā)工程師,本地的開發(fā)環(huán)境是必不可少的。我們首先看看需要哪些工具: go-ethereum so...

    Ethan815 評(píng)論0 收藏0
  • 以太本地開發(fā)環(huán)境搭建

    摘要:本文所搭建的環(huán)境是在上的開發(fā)環(huán)境,其他操作系統(tǒng)上與此非常相似,依然有參考價(jià)值。作為一枚區(qū)塊鏈開發(fā)工程師,本地的開發(fā)環(huán)境是必不可少的。因?yàn)槲覀兪撬接墟湥钥梢詫懙拇笠恍?,方便開發(fā)測(cè)試。 本文所搭建的環(huán)境是在 Mac 上的開發(fā)環(huán)境,其他操作系統(tǒng)上與此非常相似,依然有參考價(jià)值。 作為一枚區(qū)塊鏈開發(fā)工程師,本地的開發(fā)環(huán)境是必不可少的。我們首先看看需要哪些工具: go-ethereum so...

    fancyLuo 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.41 - 深入學(xué)習(xí)區(qū)塊

    摘要:和比特幣協(xié)議有所不同的是,以太坊的設(shè)計(jì)十分靈活,極具適應(yīng)性。超級(jí)賬本區(qū)塊鏈的商業(yè)應(yīng)用超級(jí)賬本超級(jí)賬本是基金會(huì)下的眾多項(xiàng)目中的一個(gè)。證書頒發(fā)機(jī)構(gòu)負(fù)責(zé)簽發(fā)撤 showImg(https://segmentfault.com/img/bV2ge9?w=900&h=385); 從比特幣開始 一個(gè)故事告訴你比特幣的原理及運(yùn)作機(jī)制 這篇文章的定位會(huì)比較科普,盡量用類比的方法將比特幣的基本原理講出來...

    qianfeng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

張金寶

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<