安装以太坊客户端(Geth)
1 | sudo apt-get install software-properties-common |
安装进程管理工具
pm2 需要 node 环境
1 | //nvm install node |
启动 geth 配置文件
1 | ~/geth.json |
执行 pm2 start geth.json
即可启动 geth 另外如果不想使用 pm2 ,直接启动私有链请查看下面这种方式:
1. 新建一个 shell 脚本文件
1 | ~/geth_private.sh |
2. 更改文件属性问可执行
1 | chmod +x geth_private.sh |
3. 三种方式执行 shell 启动脚本
1 | nohup ./geth_private.sh 0<&- &>/dev/null & // 守护进程启动私有链节点 |
第二种打印日志的方式非常有用。其一是如果 geth 启动不成功,可以在日志中看到具体错误体制。其二是在测试链中部署智能合约(切记要确保 geth 中有一个账户处于解锁状态且有一定量的 ether,一般这个账户是 coinbase)被确认时会输出合约地址到日志文件中。在私有测试链中,进入 js 交互控制台,输入 miner.start(1) 挖矿,控制台输出类似 Mined block (#72 / 517dcfd1). Wait 5 blocks for confirmation
则表示合约部署成功。
Ethereum JavaScript API
Ethereum 实现了javascript runtime environment JavaScript Console。 Ethereum’s Javascript console exposes the full web3 JavaScript Dapp API and the admin API. 当你安装好 geth 并启动服务之后,通过Non-interactive use: JSRE script mode 命令(例如 Managing accounts) 或者 Interactive use: the JSRE REPL Console 进入控制台操作 geth
1 | $ geth attach ipc:/some/custom/path |
如果你想单独在 node 服务中写代码操作 geth ,添加 web3.js 即可。 web3.js 实现了使用 node 操作 geth 。使用的前提要求启动 geth 启动时 rpcapi 包含了 web3
,在上面的配置文件中 "args" : "--rpcapi eth,web3 --rpc --dev --datadir /home/username/geth_private_data"
已经设置好了。 同时可以看看参考连接详细了解:
- Management APIs
- Web3 JavaScript Ðapp API 编译智能合约用到
安装:
1 | //install web3.js |
web.js 是一个 node 库,实现了Web3.js API Reference 另外有一点需要注意的是:当你都写好并且编译好智能合约之后,接下来的新建和部署智能合约到区块链上需要确保有一个解锁的账号(EOA)及账户有一定的资金
Create and deploy a contract Before you begin this section, make sure you have both an unlocked account as well as some funds. Create and deploy a contract
推荐阅读:
- How do I set up a private ethereum network?