Truechain运用docker镜像搭建TrueChain测试私有环境

https://github.com/truechain/wiki/blob/master/task_list/task_20180917.md

安装docker

Mac参考https://blog.csdn.net/jiang_xinxing/article/details/58025417

1.1stable Docker下载
下载地址:https://download.docker.com/mac/stable/Docker.dmg

1.2Docker命令

docker --version
docker-compose --version
docker-machine --version
docker ps  查看web服务器容器的详细信息
docker run hello-world 测试安装的docker是否正常
docker run -d -p 80:80 --name webserver nginx 运行nginx,然后访问localhost

nginx web服务器在你停止或者移除容器之前会持续运行着

docker start webserver  启动服务器
docker stop webserver  停止web服务器
docker ps -a  查看终止状态的容器
docker rm -f webserver 移除正在运行的容器
docker list 列出本地镜像
docker rmi后加ID号和镜像名字 如:docker rmi ngix  移除一个长期不需要的镜像
启动docker
service docker start
pull初链镜像
docker pull registry.cn-hangzhou.aliyuncs.com/truechain_space/truechain_image:latest
更改镜像tag为etrue
docker tag registry.cn-hangzhou.aliyuncs.com/truechain_space/truechain_image etrue
创建genesis.json文件

1.创建truechain目录
mkdir truechain
2.进入目录
cd truechain
3.创建genesis.json文件
touch genesis.json
sudo vi genesis.json
文件内容是:

{
"config": {
   "chainId": 10,
   "homesteadBlock": 0,
   "eip155Block": 0,
   "eip158Block": 0
 },
 "alloc":{
   "0x7c357530174275dd30e46319b89f71186256e4f7" : { "balance" : 90000000000000000000000},
   "0x4cf807958b9f6d9fd9331397d7a89a079ef43288" : { "balance" : 90000000000000000000000},
   "0x04d2252a3e0ca7c2aa81247ca33060855a34a808" : { "balance" : 90000000000000000000000},
   "0x05712ff78d08eaf3e0f1797aaf4421d9b24f8679" : { "balance" : 90000000000000000000000},
   "0x764727f61dd0717a48236842435e9aefab6723c3" : { "balance" : 90000000000000000000000},
   "0x764986534dba541d5061e04b9c561abe3f671178" : { "balance" : 90000000000000000000000},
   "0x0fd0bbff2e5b3ddb4f030ff35eb0fe06658646cf" : { "balance" : 90000000000000000000000},
   "0x40b3a743ba285a20eaeee770d37c093276166568" : { "balance" : 90000000000000000000000},
   "0x9d3c4a33d3bcbd2245a1bebd8e989b696e561eae" : { "balance" : 90000000000000000000000},
   "0x35c9d83c3de709bbd2cb4a8a42b89e0317abe6d4" : { "balance" : 90000000000000000000000}
 },

 "committee":[
   {
     "address": "0x76ea2f3a002431fede1141b660dbb75c26ba6d97",
     "publickey": "0x04044308742b61976de7344edb8662d6d10be1c477dd46e8e4c433c1288442a79183480894107299ff7b0706490f1fb9c9b7c9e62ae62d57bd84a1e469460d8ac1"
   }
 ]
,
 "coinbase"   : "0x0000000000000000000000000000000000000000",
 "difficulty" : "0x100",
"extraData"  : "",
 "gasLimit"   : "0x5400000",
 "nonce"      : "0x0000000000000042",
 "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
 "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
 "timestamp"  : "0x00"
}

简单介绍一下这个genesis.json

chainId 链的ID
alloc 系统自带的两个地址及余额
coinbase 矿工工号
difficulty 挖矿难度
extraData 扩展字段
gasLimit 交易手续费
nonce 随机字符串,用于挖矿
mixhash 配合nonce进行挖矿
parentHash 上一个区块的哈希
timestamp 区块生成的时间

创建创世区块

1.在truechain目录下执行下面命令

docker run -v $PWD:/truechain-engineering-code -v $PWD/data:/truechain-engineering-code/data -it etrue  --datadir /truechain-engineering-code/data init /truechain-engineering-code/genesis.json
启动节点

docker attach ba86d98b919b
1.进入truechain目录下,启动单节点测试网络

docker run -v $PWD:/truechain-engineering-code -it etrue --singlenode --datadir /truechain-engineering-code/data --bftkeyhex "c1581e25937d9ab91421a3e1a2667c85b0397c75a195e643109938e987acecfc" --election --bftip "172.21.0.5" --bftport 10080 --port 30303 --networkid 10 --rpc --rpcaddr 127.0.0.1 --rpcport 8545 --rpcapi "db,etrue,net,web3,personal,admin,miner" --verbosity 1 console

2.解析命令

1)-singlenode --bftkeyhex “xxx” 单节点启动网络,参数是节点私钥,该私钥和genesis文件里的公钥是一对.
2)–election --bftip “172.26.246.28” --bftport 10080 本节点参与委员会选举,配置自己的ip和端口。但单节点运行环境,本身就是委员会节点,所以这条命令可以不用。

使用测试网络

3.创建账户:personal.newAccount()
publickey=04044308742b61976de7344edb8662d6d10be1c477dd46e8e4c433c1288442a79183480894107299ff7b0706490f1fb9c9b7c9e62ae62d57bd84a1e469460d8ac1 ip=172.21.0.5

0x9869b72d3a27b438b5d7f56d959f581c3ca69082
0x1f726f9b4d8324c2a39858136d3019239cb4e1fb

1.查询账户:
etrue.accounts

2.查询账户余额:
etrue.getBalance(“0x1f726f9b4d8324c2a39858136d3019239cb4e1fb”)
etrue.getBalance(“0x9869b72d3a27b438b5d7f56d959f581c3ca69082”)

4.转账数额位和true单位转换:amount = web3.toWei(5000,‘ether’)

5.账户解锁:personal.unlockAccount(etrue.accounts[0])或 personal.unlockAccount(“0x1f726f9b4d8324c2a39858136d3019239cb4e1fb”)

6.转账交易:etrue.sendTransaction({from:“0x9869b72d3a27b438b5d7f56d959f581c3ca69082”,to:“0x1f726f9b4d8324c2a39858136d3019239cb4e1fb”,value:1})

7.查询挖矿的coinbase地址:etrue.coinbase

8.启动挖矿,括号内可以添加数字,表示开启几个线程:miner.start()

9.停止挖矿:miner.stop()

10.etrue.getTransactionReceipt(“0xf659bf31ee2cc57a0a68417b284c11d0ba23d2376dc236c49af6e8164f04781e”)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值