Taireum在以太坊的代码基础上,进行了若干代码模块的重构与开发。
环境准备
golang 最新 https://www.golangtc.com/download
geth客户端编译
git clone https://github.com/taireum/go-taireum
cd go-taireum
build/env.sh go run build/ci.go install
注意:
CCC控制台编译启动
在编译之前需要安装相关node.
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
cd tai/api/;nvm install v8.9 && npm install && node bin/www &
cd client;npm install && npm run dev
查看相关端口
netstat -tunlp| egrep "8001|8421"
访问浏览器 http://localhost:8001
在Taireum里有三类角色,一类是创始者,一类是PoA成员,一类是普通成员,
普通成员和PoA成员的区别
创始者是整个Taireum的第一个成员,也是一个PoA成员,他是共识合约的部署者,决定整个网络id/创始区块初始值。
使用Taireum部署联盟链,联盟链内只允许有一个创始者,可以有多个成员。新成员加入必须依赖老成员投票后加入。
我们已经在相关工作流中已经封装了接口。 初始化账号
geth --datadir datadir account new
创始区块初始化
geth --datadir datadir init genesis.json
启动进程,启动都时候需要指定一系列相关参数
geth --mine --nodiscover --datadir datadir--mine --unlock account --password ./passwd --etherbase account --rpc --rpcaddr 127.0.0.1 --rpcport 8545 --rpcapi "web3,eth" --rpccorsdomain "*" --networkid ID
相关参数解析
| 参数 | 描述 |
|---|---|
--mine |
开启挖矿 |
--unlock |
解锁相关账号 |
--etherbase |
制定挖矿账号 |
--rpc |
开启rpc,默认端口8545 |
--rpcapi |
要开启rpc的相关功能端 |
--networkid |
网络id,用来区分不同的网络接入 |
新成员加入必须满足以下几个条件:
创始者:
当新成员投票之后,创始者将 enode url 发送给新成员 ,当新成员节点 p2p 通信模块读取智能合约成员列表 信息,同意建立连接,新成员节点开始下载区块数据。
加入命令参考
geth --bootnodes --datadir data --unlock "0xa4738949c7cc6882febd97a26eafcd6eaa2593c5" --password ./passwd --rpc --rpcport 8545 --rpcapi="api,miner,db,eth,net,web3,personal,admin" --networkid 99 --bootnodes enode://edd1b2212cc243a5b0f8c952db32a33670cf50f42225acb2f9aa9581a6f5bbb91cf1a8d5844f426399e5ec6736749f1c766c451d47dbc04d78f73bcdcc14a673@10.200.145.7:30303 --mine console
| 参数 | 描述 |
|---|---|
--bootnodes |
加入创始者p2p网络 |
--nodiscover |
关闭自动发现,避免在公网上或者其他enode节点加入 |
常见指令参考
| 指令 | 描述 |
|---|---|
admin.nodeInfo |
查看自己节点信息 |
admin.addPeer("") |
添加节点 |
admin.peers |
查看新添加的节点 |
net.peerCount |
查看连接数 |
手动命令(存在ccc_setup.json):
cd tai/api/
node lib/deploy.js
单纯的启动geth
sh init_account.sh /tmp/new admin 8545 10086 99
以太坊信息请参考ETH-README.md