- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
以太坊私有连搭建及智能合约编写实践
一. 安装go
1. 通过wget 下载go-linux-64 位源码包,手动wget 安装
2. 解压二进制文件到 /usr/local 目录
3. 修改环境变量
执行 vi ~/.bash_profile
保存后,执行source ~/.bash_profile
4. 检验安装情况
执行 go version
安装成功。
二. 安装go-ethereum
1. 去官网 /downloads/ 下载Geth1.8.18 for Linux
2. 解压到当前文件夹
3. 修改文件夹名称
4. 配置环境变量
vi ~/.bash_profile
使bash_profile 生效
source ~/.bash_profile
5. 检查是否安装成功
执行geth –help
安装成功
三. 搭建私有链
1. 编写创始区块信息,保存在gensis.json 中
2. 将创世区块信息写入创始区块
此时目录结构如下:
执行命令geth --datadir data0 init genesis.json
输出如下:
初始化成功,此时data0 目录下多出geth 和keystore 文件夹,geth 包含chaindata
文件夹,chaindata 下有如下文件:
3. 启动私有链节点
初始化完成后就产生了一条私有链,可以启动该私有链
执行命令:geth --datadir data0 --networkid 999 console
Javascript 交互式控制台启动成功
4. 创建账户
通过personal.newAccount()创建账户,eth.accounts 查看账户
在~/privatechain/data0/keystore 中查看,发现多了两个json 文件
5. 查看账户余额
目前账户余额都是0,需要从其他账户转入或者挖矿获取
6. 开始挖矿
默认使用第一个账户作为矿工账户
执行miner.start()
第一次启动挖矿会生成挖矿所需的DAG 文件,这个过程有点慢,等进度达到100%
后,就会开始挖矿。下图为生成DAG:
DAG 生成完成后开始正式挖矿,试了几次才挖到矿
查看账户余额:
此时coinbase 账户里已经有钱了
7. 转账
尝试将basecoin 账户的钱转到另外一个账户
报错,因为每隔一段时间账户会自动锁定,需输入密码解锁
再次尝试交易
查看两个账户的余额
发现账户余额并未发生改变,交易处于pending 状态,要使交易被处理则要重新启
动挖矿
完成交易操作,再次检查账户余额
此时coinbase 账户余额被扣除100,另一个账户余额增加100,交易完成。
四. 编写智能合约
编写一个求加法计算的智能合约
1. 在线编辑器remix 中编写智能合约代码,文件名为add.sol
2. 编译add.sol 文件
执行 solcjs --abi --bin add.sol
执行完成后目录下多了bin 和abi 文件
3. 准备部署环境,安装ethereumjs-testrpc
安装完成后输入命令testrpc
4. 在node 环境中链接testrpc
5. 开始部署,读取abi 文件和bin 文件
6. 获取部署实例地址
7. 使用智能合约
得到正确结果。
文档评论(0)