从零开始搭建私有链

明学的白板 2018-03-13

接触区块链有一段时间了,然而仅仅停留在炒概念、蹭热点是没有意义的,于是决定沉下心来,踏踏实实的学习写代码,从最基础的Geth,Mist,Solidity,Truffle等学起,按照网上各位达人写的教程,一步步去实验,出现问题百度,反反复复,直到问题一个一个解决,慢慢有了一些心得。今天就来讲讲怎样从0开始,搭建起可以在自己电脑上进行测试的以太坊私有链,我用的是windows系统,虽然很多达人都写了不少Mac和Linux上搭建的教程,因为想尽快上手,就懒得再去装Centos或Ubuntu,更不想花银子买台Mac。

1. 重要工具Geth和Mist(或Ethereum Wallet)

工欲善其事,必先利其器。要学会玩儿以太坊,首先得学习怎样使用Geth跟Mist两样工具。先来解释一下这两样工具分别是干嘛用的。

Geth:纯命令行工具,用来新建账户、管理节点、部署执行合约、转移以太币、还有挖矿。

Windows版的Geth可以在官网上下载exe文件,然后直接安装。官网:https://geth.ethereum.org/

Geth的运行需要在cmd或Powershell(“运行”里输入打开)里面敲命令实现。

Mist(或Ethereum Wallet):以太坊钱包工具,Mist跟Ethereum Wallet的区别在于Ethereum Wallet仅仅是一个“钱包”,而Mist不仅是“钱包”,还是一个去中心化的浏览器。

Mist是一个图形化的操作界面,可以更加直观的在上面进行账户管理、发送以太币、以及部署智能合约。

2. Geth安装和配置

(1)https://geth.ethereum.org/ 官网上下载geth-windows-amd64-1.8.2-b8b9f7f4.exe(根据不同的系统选择),双击安装,再在“我的电脑”-“属性”-“高级设置”里配置一下环境变量

(2)“运行”里输入cmd或powershell打开命令行界面,输入geth version回车,如果显示版本信息,则表示geth安装成功。

(3)准备创世区块文件genesis.json

复制以下代码,然后打开notepad++,粘贴进去,再保存为genesis.json文件名,放在Geth安装目录下新建的tmpPrivate(名字可以随便取)的文件夹下里面{

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

从零开始搭建私有链从零开始搭建私有链

(4)回到cmd命令行,用cd命令进入geth安装目录,输入geth --datadir "./" init genesis.json

从零开始搭建私有链

(5)打开geth控制台

按回车,输入geth --rpc --rpccorsdomain "*" --datadir "C:\Users\用户名\tmpPrivate" --port "30303" --rpcapi "db,eth,net,web3" --networkid 10000 console

10000是网络id,可以随便写,其他的不用改

从零开始搭建私有链

回车后,进入geth,如图

从零开始搭建私有链

“>”后面就可以输入geth命令,建立账户、发送以太币、以及挖矿了!

(6)创建账号:

输入命令personal.newAccount(“XXXXXX”)

XXXXXX是创建账户的密码,也是发送以太币的支付密码,一定要保密!!如图

从零开始搭建私有链

123456是我随便自己设的密码

创建好以后,系统默认的账户是eth.accounts[0],可以输入eth.accounts[0]查看该账户的公钥

从零开始搭建私有链

输入eth.getBallance(eth.account[0])可以查看该账户里有多少以太币

从零开始搭建私有链

这里显示的是0,因为我们还没有挖矿,所以这里面是没有钱的,下面我们就可以开始挖矿了

(7)挖矿

记住,我们现在建立的是私有链,挖矿得到的以太币都是暂时的,一旦命令行界面关闭,所有的挖矿得到的以太币都将清零。

挖矿的命令:miner.start()

停止挖矿命令:miner.stop()

这里注意几点:

一、一旦输入挖矿命令开始挖矿,所有挖到的以太币(非真实的以太币)都将进入account[0]账户

二、建议使用miner.start(1)使用一个进程来挖矿,miner.start()会耗用所有单机资源来挖矿,电脑会拖的很慢

三、一旦开挖,电脑会花几分钟进行配置,所以不要心急,耐心等待

从零开始搭建私有链

等开始挖矿之后,输入eth.getBallance(eth.account[0])可以看到账户里不断增长的假以太币了。

3. 配置静态节点

我们知道,区块链是由许许多多的节点来验证交易的过程,并承认交易的合法性,然后产生相应的区块,那么如何让私有链不断的产生合法的区块?

这就需要我们为该私有链配置静态节点。

静态节点可以来自用户自己的电脑,也可以来自其他IP地址提供的节点,目前已知这样的节点有很多,后面我们会提供。我们先来介绍如何配置静态节点:

(1)首先,配置静态节点很简单,只需要在geth命令行里输入

admin.addPeer("enode:公有链地址@IP地址:30303") 如图:

从零开始搭建私有链

(2)使用自己账户的公有链地址和自己电脑的IP地址

使用自己账户的公有链地址:

输入admin.nodeInfo查看

从零开始搭建私有链

另外打开一个cmd输入ipconfig查看自己的Ip地址,这个大家应该都会吧

(3)使用第三方提供的静态节点

这里提供一些静态节点供大家参考

"enode://6427b7e7446bb05f22fe7ce9ea175ec05858953d75a5a6e4f99a6aec0779a8bd6276f1959a42fe5948acbe14bcd0652082dc546d3b37ae8f2aea41eba4eca43b@121.201.14.181:30303",
"enode://91922b12115c067005c574844c6bbdb114eb262f90b6355cec89e13b483c3e4669c6d63ec66b6e3ca7a3a462d28edb3c659e9fa05ed4c7234524e582a8816743@120.27.164.92:13333",
"enode://3dde41a994b3b99f938f75ddf6d48318c78ddd869c70b48d00b922190bb434fc5474f6250c143723f4387273d123e02f6a38f07d0311f240d2915f6140e09850@207.226.141.212:30303",
"enode://7ab8fa90b204f2146c00939b8474549c544caa3598a0894fa639a5cdbd992cbc6135fd776f8bcf97ae95fdaa3afbfa2d107fea71549119afd7ea57356b899be5@121.201.24.236:30303",
"enode://db81152a8296089b04a21ad9bf347df3ff0450ffc8215d9f50c400ccf8d18963118010cacf03c4b71981cf9cac5394438cab3039e98db4d2aae5859ab7d1793e@139.198.1.244:30303",
"enode://68dd1360f0a4ac362b41124692e31652ffe26f6f06a284ca11f3b514b3968594ac1f4320d1aa1ca343b06327c18a2e40eded74edfb3086e1baaa27ca24226b21@113.106.85.172:30303",
"enode://58f6b6908286cefe43c166cfc4fed033c750caa1bc3f6e1e1e1507752c0b91248addb3122f8557c5f8912e702285a160ab3a10203ae1eff3807eda25d6ed6478@45.113.71.186:30303",
"enode://87190a01c02cafb97e7f49672b4c3be2937cf79c3969e0b8e7b35cac28cebfbda52a13d56fd2113c726a1dd359c9476ccf7e60651439cef56e3a71039f6a4f5e@119.29.207.90:30303",
"enode://d1fdd05a62fd9544eeb455e4f4d4bd8bb574138d82d8f909f3041d0792e3401f8695133d39ad0a3aa5d217e3c5bed0511b531505a67b03607a909ae9096720d2@120.26.129.121:30303",
"enode://a1e9cf99eca94590ae776c8dd5c6c043a8c1f0375e9e391c9fb55133385bf453ac3d3fb3ead8e63415b2ef99d54a19e2a7bc830cd1fdbbb283818e3bcb0ea31e@182.254.209.254:30303",
"enode://562796b19d43d79dfb6160abd2d7bb78a2f2efd9501a0a767c00677e0fb3a4407235f813c3003682c2a421a58709c52f595827bc15708cc5f534f55d0f8d03ad@121.40.199.54:30303",
"enode://fa2c17dcc83a6e2825668210abf7480452de4b13d8bdea8f301c3b603701918bc4dade9e68d119d7a8214e90e7ea10a2782041c98951385d97bee73358fb08f4@120.26.124.58:30303",
"enode://0b331b27e2976d797aed1d1464ac483a7f262860334cb5737a01a0188da08d79226a6973adc5f2a2c1a20192b399161eee23a0d56ecf472cbe4058d010ecc89f@47.89.49.61:30303",
"enode://0639f20fdb5af1fecd2f2bc0ddb648885483a5945686530e6b046678635d3435dd7b92fe34209f81ec6f003482aa78e407e5e6eb1b10be4773a2adbcf1fc1ba6@118.192.161.147:30303",
"enode://fd2a5d30e4f3917ee640876cc57d72a8bf5ecf049e9106c95e60cf306dd7a5dd68d1a295f3718af44a7083252686926d6e8a402f1abe6f805e10e7281967db28@121.201.29.82:30303",
"enode://0d1b9eed7afe2d5878d5d8a4c2066b600a3bcac2e5730586421af224e93a58cd03cac75bf0b2a62fd8049cd3692a085758cc1e407c8b2c94bb069814a5e8d0f0@209.9.106.245:30303",
"enode://ca087a651571d04953187753af969f7deb1582af2a06a3048b90adb3f87d4c41973aac4b5e80449efc97154dac769a5ea447b123c3aaf7a2c23825a1558804dc@182.150.37.23:30303",
"enode://9b53b9d41d964f71db60d2198cfa9013fc7808d707c5e0a32da1e22d3cacd6adbae46901df6506a752d9d4e3791df29171315fbb86f7b09331a25458158fe65b@182.150.37.24:30303"

4. Mist/EthereumWallet使用

https://github.com/ethereum/mist/releases/ 下载Mist或EthereumWallet客户端

从零开始搭建私有链

下载完后启动,EthereumWallet不用安装可以直接打开,所以我们以这个为例

从零开始搭建私有链

如果没有打开静态节点,那么启动界面将会一直提示“Ethereum node needs to sync, please wait...”

从零开始搭建私有链

不用理会,直接点击“LAUNCH APPLICATION”进入

从零开始搭建私有链

因为我们还没有挖矿,或者命令行重新启动,主账户(Main Account)即命令行中的(eth.accounts[0])归零,要让主账户有钱,我们回到命令行中,通过geth的miner.start()命令开始挖矿就可以了

从零开始搭建私有链

这里我们用5个线程来挖,需要等上几分钟,泡杯茶,然后就可以看到:

从零开始搭建私有链

同时,你的EthereumWallet里面的MainAccount上面的金额也在不断增加

从零开始搭建私有链

至此,我们的私有链便搭建完成!!

希望感兴趣的朋友加我微信一起讨论

从零开始搭建私有链

相关推荐

XinLianOrg / 0评论 2017-12-04