摸索以太坊区块链技术几个月了。最近打算逐步的把自己学到的东西和大家分享一下。
在阅读本文之前,希望大家能对区块链的概念能有所了解。这样操作过程中的环节理解更深入。下面开始进入准备。
因为本次是windows环境下的私有链环境搭建,所以需要做以下准备
1.win10系统,64位
2.以太坊钱包(我用的0.8.1版本 https://github.com/ethereum/mist/releases/tag/0.8.1)
3.以太坊geth客户端(我用的是1.4.11版本 https://github.com/ethereum/go-ethereum/releases/tag/v1.4.11)
首先,将geth客户端的压缩包解压,得到geth.exe放置在任意位置(注意,文件路径中不能出现中文。本文以D盘的blockchain文件夹为例)
然后在该文件夹下创建创世块的初始化文件genesis.json
内容如下
{
“difficulty”: “0x40000”,
“extraData”: “Genesis Block”,
“gasLimit”: “0xffffffff”
}
注释 “difficulty”: “0x40000”,//难度,该值越大,出块越慢。 “extraData”: “Genesis Block”,//附加信息,随意填写 “gasLimit”: “0xffffffff”//每个块所能容载的gas上线,可以暂时理解为
win键 + r 进入cmd命令行
键入 d: 是命令行进入d盘
键入 cd blockchain 进入d盘的blockchain目录
键入 geth –help 查看是否能够输入帮助信息
键入 geth –datadir “%cd%\chain” init genesis.json 将创世块信息初始化
键入 geth –datadir “%cd%\chain” console 打开geth的控制台
在控制台键入 personal.newAccount(‘123.abc’) 创建用户 123.abc 为用户的密码,自定义即可(该用户用来启动私有链时的矿工)
键入 exit 退出geth控制台
键入 geth –targetgaslimit 4294967295 –rpc –rpcaddr “192.168.1.104” –rpcport “8101” –port “30301” –rpcapi “eth,web3,personal” –networkid 2016 –identity 2016 -nodiscover -maxpeers 5 –datadir “%cd%\chain” -unlock 0 -rpccorsdomain “*” –mine console 启动私有链节点
注释
targetgaslimit –每个块的gas上限,这里可以暂时理解为容量 rpc –启动rpc通信,可以进行智能合约的部署和调试 rpcaddr –rpc接口的地址 rpcport –rpc接口的端口号 port –网络监听端口,用于节点之间通信 rpcapi –设置rpc的范围,暂时开启eth,web3,personal足够 networkid –设置当前区块链的网络ID,是一个数字,可以随便写 identity –区块链的标示,随便填写,用于标示目前网络的名字 nodiscover 禁止被网络中其它节点发现,需要手动添加该节点到网络 maxpeers 最大节点数量 datadir –设置当前区块链网络数据存放的位置 unlock –解锁某用户(此处用用户坐标来控制,解锁后的用户调用接口发起交易时,不要需要提供密码) rpccorsdomain 限制rpc访问源的ip,代表不限制 mine 允许挖矿 console –启动命令行模式,可以在Geth中执行命令*
键入回车
命令行中出现Passphrase:
键入 刚才创建用户是定义的密码
然后等待出现类似如下信息时:
I1208 17:49:49.023354 ethash.Go:291] Generating DAG: 0%
I1208 17:49:55.636941 ethash.go:291] Generating DAG: 1%
I1208 17:50:01.952089 ethash.go:291] Generating DAG: 2%
I1208 17:50:08.887566 ethash.go:291] Generating DAG: 3%
I1208 17:50:15.176846 ethash.go:291] Generating DAG: 4%
I1208 17:50:21.314108 ethash.go:291] Generating DAG: 5%
I1208 17:50:27.396949 ethash.go:291] Generating DAG: 6%
则证明开始创建创世块,等待进度至100%后,便会开始挖矿了。
这时,解压以太坊钱包到任意目录(本文以d盘ethwallet为例)
打开ethwallet文件夹,运行Ethereum-Wallet.exe
出现如下画面
关闭该窗口
出现如下窗口
如果右上角出现“PRIVATE-NET”则证明钱包客户端已经连接到了我们的私有节点。
点击“LAUNCH APPLICATION”
进入钱包主页面
如下
由于挖矿比较消耗cpu,所以此时打开控制台
键入 miner.stop() 停止挖矿。不要在意输出的刷屏,只管输入完成后回车即可,如果输入正确,回车后会输出“true”。
键入 miner.start(1) 使用一个cpu挖矿,减少对电脑性能的消耗。
下面我们进入下一个环节,交易
因为我们现在只有一个用户,没办法正常交易,所以现在主页面点击“ADD ACCOUNT” 创建另外一个用户,按照步骤输入密码,确认密码后,创建用户工作就完成了。
点击“ACCOUNT2”进入账户详情页面,复制用户地址
复制时,会出现提示“Warning: you are on the Test Network. Be careful not to transfer real funds to this account.”。不用理他,点击OK。
然后点击钱包界面的“SEND”,进入交易发送界面
点击“FROM”下方输入栏,选择交易的发起人,我们选“Main account” ,因为当前只有他的账户下有以太币。“TO”下方的输入栏我们输入刚才复制的“ACCOUNT2”的地址。“AMOUNT”处输入本次要交易的以太币数量,以10个为例。输入10。其他的地方不用管,我们把滚动条拖到最下方,左下方有个“SEND”按钮,点击一下。弹出如下窗口
在输入栏中输入主账户的密码,点击“SEND TRANSACTION”交易就发出去了。
页面会自动跳转会主页面。我们将滚动条滚到下面。
我们可以看到我们刚才从主账户像“ACCOUNT2”发起的交易。
好了,这样的话,一个私有链搭建就完成了。也进行了一个简单的交易。万里长征的第一步迈出去了。不要觉得很麻烦,因为后续的种种比这要麻烦的多。
后续的Linux环境搭建,以及智能合约我也会慢慢的更新。希望大家共同学习,共同进步
转自http://blog.csdn.net/u014409380/article/details/53522581