成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

搭建以太坊本地開(kāi)發(fā)環(huán)境

Ethan815 / 1252人閱讀

摘要:本文所搭建的環(huán)境是在上的開(kāi)發(fā)環(huán)境,其他操作系統(tǒng)上與此非常相似,依然有參考價(jià)值。作為一枚區(qū)塊鏈開(kāi)發(fā)工程師,本地的開(kāi)發(fā)環(huán)境是必不可少的。因?yàn)槲覀兪撬接墟?,所以可以?xiě)的大一些,方便開(kāi)發(fā)測(cè)試。

本文所搭建的環(huán)境是在 Mac 上的開(kāi)發(fā)環(huán)境,其他操作系統(tǒng)上與此非常相似,依然有參考價(jià)值。

作為一枚區(qū)塊鏈開(kāi)發(fā)工程師,本地的開(kāi)發(fā)環(huán)境是必不可少的。我們首先看看需要哪些工具:

go-ethereum

solc

Ethereum Wallet

這些工具的安裝在官方文檔上都有非常詳細(xì)的講解,這邊就不多贅述了。

目錄結(jié)構(gòu)
下文中的文件均已該目錄為當(dāng)前路徑。

先新建好如下初始目錄,

.
├── data
└── genesis.json

genesis.json:初始化私有鏈的配置文件。

data:存放區(qū)塊鏈數(shù)據(jù)的目錄。

配置文件

以太坊支持自定義創(chuàng)世區(qū)塊,要運(yùn)行私有鏈那么就必須定義自己的創(chuàng)世區(qū)塊。創(chuàng)世區(qū)塊的信息就寫(xiě)在 genesis.json 中,內(nèi)容如下:

{
  "config": {
    "chainId": 15,
    "homesteadBlock": 0,
    "eip155Block": 0,
    "eip158Block": 0
  },
  "alloc": {},
  "nonce": "0x0000000000000042",
  "difficulty": "0x020000",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "timestamp": "0x00",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "extraData": "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa",
  "gasLimit": "0x4c4b40"
}

大概解釋下其中的幾個(gè)參數(shù):

alloc:用來(lái)預(yù)設(shè)置賬號(hào)以及賬號(hào)的 ether 數(shù)量。因?yàn)樗接墟溚诘V比較容易,所以我們不需要預(yù)設(shè)置賬號(hào)。比如,{"0x880004bb64282fb01a3a2500ddf1f4bb5ad4b64a":{"balance":"100000000000000000000000000000"}}

nonce:一個(gè)64位隨機(jī)數(shù),用于挖礦。

mixhash:和 nonce 配合用于挖礦,由上一個(gè)區(qū)塊的一部分生成的 hash。

difficulty:設(shè)置當(dāng)前區(qū)塊的難度,如果難度過(guò)大,cpu挖礦就很難,所以這邊設(shè)置的很小,不要跟自己過(guò)不去嘛。

coinbase:默認(rèn)挖礦的礦工賬號(hào)。

timestamp:設(shè)置創(chuàng)世塊的時(shí)間戳。

parentHash:上一個(gè)區(qū)塊的hash值,因?yàn)槭莿?chuàng)世塊,所以值是0。

extraData:附加信息,隨便填。

gasLimit:設(shè)置對(duì)GAS的消耗總量限制,用來(lái)限制區(qū)塊能包含的交易信息總和。因?yàn)槲覀兪撬接墟?,所以可以?xiě)的大一些,方便開(kāi)發(fā)測(cè)試。

初始化

接下來(lái)我們就需要將創(chuàng)世區(qū)塊的初始信息寫(xiě)入?yún)^(qū)塊鏈中,使用 geth init 命令。

# geth --datadir "./data" --networkid 31415926 --rpc --rpccorsdomain "*" init ./genesis.json

大致會(huì)輸出如下信息:

INFO [03-12|19:36:02] Allocated cache and file handles
INFO [03-12|19:36:02] Writing custom genesis block
INFO [03-12|19:36:02] Persisted trie from memory database
INFO [03-12|19:36:02] Successfully wrote genesis state

此時(shí)的目錄結(jié)構(gòu)就變成如下:

.
├── data
│  ├── geth
│  │  ├── chaindata
│  │  │  ├── 000001.log
│  │  │  ├── CURRENT
│  │  │  ├── LOCK
│  │  │  ├── LOG
│  │  │  └── MANIFEST-000000
│  │  └── lightchaindata
│  │      ├── 000001.log
│  │      ├── CURRENT
│  │      ├── LOCK
│  │      ├── LOG
│  │      └── MANIFEST-000000
│  └── keystore
└── genesis.json

其中 keystore 目錄用來(lái)保存賬戶信息,geth 目錄用來(lái)保存區(qū)塊信息。

啟動(dòng)

讓我們接下來(lái)啟動(dòng)私有鏈吧!

# geth --datadir data --networkid 31415926 --rpc --rpccorsdomain "*" --nodiscover console

輸出如下即表示成功進(jìn)入 geth 的控制臺(tái):

Welcome to the Geth JavaScript console!

instance: Geth/v1.8.2-stable/darwin-amd64/go1.10
 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

> 
創(chuàng)建賬戶

先別急著去挖礦,我們得先創(chuàng)建一個(gè)賬戶,不然挖出的 ether 塞哪里去呢!

ether 也就是我們說(shuō)的以太幣(ETH)。

先來(lái)看看是否已存在賬戶了,

> eth.accounts
[]

那我們新建兩個(gè)(用于后面賬戶間的轉(zhuǎn)賬演示),

> personal.newAccount()
Passphrase:
Repeat passphrase:
"0x880004bb64282fb01a3a2500ddf1f4bb5ad4b64a"

> personal.newAccount()
Passphrase:
Repeat passphrase:
"0x29a079bdbc6d4d122178fbe01558e5df2d008523"

現(xiàn)在我們就有兩個(gè)賬戶了,

> eth.accounts
["0x880004bb64282fb01a3a2500ddf1f4bb5ad4b64a", "0x29a079bdbc6d4d122178fbe01558e5df2d008523"]

多說(shuō)一句,我們此時(shí)去看看 keystore 目錄,多出了兩個(gè)文件,也就是我們剛才創(chuàng)建的兩個(gè)賬戶密鑰(丟了它,你就等于丟了幣)

.
├── UTC--2018-03-12T11-46-09.722094891Z--880004bb64282fb01a3a2500ddf1f4bb5ad4b64a
└── UTC--2018-03-12T11-48-04.771328116Z--29a079bdbc6d4d122178fbe01558e5df2d008523

這時(shí)候讓我們看看賬戶里有沒(méi)有 ether,

> eth.getBalance(eth.accounts[0])
0
挖礦

一開(kāi)始大家的賬戶里都沒(méi)有 ether,那么都需要通過(guò)挖礦來(lái)獲取。使用 miner.start() 命令開(kāi)啟挖礦,默認(rèn)挖出的 ether 是存到 eth.coinbase 賬戶中的,也就是第一個(gè)賬戶。

> eth.coinbase
INFO [03-12|19:55:13] Etherbase automatically configured       address=0x880004Bb64282fb01A3A2500DDF1F4bB5AD4b64A
"0x880004bb64282fb01a3a2500ddf1f4bb5ad4b64a"

如果我們想要把挖到的礦存入其他賬戶,可以這樣:

> miner.setEtherbase(eth.accounts[1])
true

好了,我們開(kāi)始挖吧~

> miner.start(1)
> INFO [03-12|20:00:44] Commit new mining work                   number=1 txs=0 uncles=0 elapsed=513.188μs
INFO [03-12|20:00:47] Generating DAG in progress               epoch=0 percentage=0 elapsed=1.668s
INFO [03-12|20:00:49] Generating DAG in progress               epoch=0 percentage=1 elapsed=3.368s

等到 percentage 達(dá)到100就能挖出來(lái)了,請(qǐng)耐心等待~

INFO [03-12|20:04:15] Successfully sealed new block            number=4 hash=81db99…4db568
INFO [03-12|20:04:15]            
               
                                           
                       
                 

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/24062.html

相關(guān)文章

  • SegmentFault 技術(shù)周刊 Vol.41 - 深入學(xué)習(xí)區(qū)塊鏈

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

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

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

    fancyLuo 評(píng)論0 收藏0
  • 以太是什么 - 以太開(kāi)發(fā)入門(mén)指南

    摘要:以太坊是什么以太坊是一個(gè)建立在區(qū)塊鏈技術(shù)之上,去中心化應(yīng)用平臺(tái)。運(yùn)行環(huán)境以太坊虛擬機(jī)是以太坊中智能合約的運(yùn)行環(huán)境。是由以太坊客戶端提供的是典型的開(kāi)發(fā)以太坊時(shí)使用的客戶端,基于語(yǔ)言開(kāi)發(fā)。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:以太坊是什么 - 以太坊開(kāi)發(fā)入門(mén)指南原文已更新,請(qǐng)讀者前往原文閱讀 很多同學(xué)已經(jīng)躍躍欲試投入到區(qū)塊鏈開(kāi)發(fā)隊(duì)伍當(dāng)中來(lái),可是又感覺(jué)無(wú)從下手,本文將基于以太坊平臺(tái),以通俗...

    tomlingtm 評(píng)論0 收藏0
  • 登鏈錢(qián)包(一款功能強(qiáng)大的以太錢(qián)包)完全開(kāi)源

    摘要:再也不用傻乎乎找人開(kāi)發(fā)以太坊錢(qián)包了,直接拿去用吧再也不用擔(dān)心私鑰會(huì)被上傳到別人的服務(wù)器上。功能夠全面吧,尤其是最后一個(gè)功能支持以太坊官方測(cè)試網(wǎng)絡(luò)及及本地測(cè)試網(wǎng)絡(luò),估計(jì)是開(kāi)發(fā)者的最愛(ài),做為開(kāi)發(fā)者的我,懂你們的痛可以獲取到免費(fèi)的以太幣用于測(cè)試。 你是否和我前段時(shí)間一樣,苦苦的尋找一款好用的開(kāi)源以太坊錢(qián)包,你會(huì)發(fā)現(xiàn)可用都很少,因?yàn)楹芏噱X(qián)包說(shuō)開(kāi)源,僅僅是開(kāi)源部分代碼,現(xiàn)在不需要再找了, 登鏈錢(qián)...

    _ivan 評(píng)論0 收藏0
  • Mac環(huán)境搭建以太私有鏈

    摘要:原文地址石匠的為了測(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-ether...

    張金寶 評(píng)論0 收藏0

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

0條評(píng)論

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