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

2023-11-11

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”)

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Truechain运用docker镜像搭建TrueChain测试私有环境 的相关文章

  • 让你能进“大厂”的数据分析项目是长怎样?全套路线(建议收藏)

    算法 数据结构 全套路线 建议收藏 前言 所谓活到老 学到老 虽然我感觉自己已经学了很多算法了 但是昨天熬夜整理完以后发现 自己还是个弟弟 实在忍不住了 打算把 算法学习路线 发出来 我把整个算法学习的阶段总结成了五个步骤 分别为 基础语法
  • NLP模型笔记2022-09:hanlp所有预训练模型API接口使用

    目录 1 找出所有预训练模型 为后续训练模型准备 2 如何使用上述模型 2 1 以分词模型为案例 2 2 以分词 词性 实体识别 句法模型为统一的模型 参考文献 HanLP2 1支持包括简繁中英日俄法德在内的104种语言上的10种联合任务
  • Python安装报错:”ModuleNotFoundError:No module named _ctypes“ 的解决方案

    目录 第一步 下载安装包 第二步 执行安装 1 创建存放目录 2 运行脚本configure 3 make编译make install安装 4 最后运行make clean 第三步 创建软连接 总结安装过程 总结报错解决 第一步 下载安装包
  • 串口助手使用16进制发送数据

    目录 如何使用串口助手发送16进制数据 注意发送字节 连续发送 注意不要使用回车 如何使用串口助手发送16进制数据 错误示范 正确示范 注意发送字节 有些串口在16进制发送是必须这样 02 直接输入2发送不出去 如图 如何知道没有发送成功呢

随机推荐

  • MFC多线程各种线程用法 .

    一 问题的提出 编写一个耗时的单线程程序 新建一个基于对话框的应用程序SingleThread 在主对话框IDD SINGLETHREAD DIALOG添加一个按钮 ID为 IDC SLEEP SIX SECOND 标题为 延时6秒 添加按
  • Windows 7 下Maven的下载安装配置 (配置本地仓库及修改路径)

    环境 windows 7 64位 官网下载Maven 1 首先去官网 http maven apache org 进行下载 这里尽量不要选太高级的版本 选个稳定的版本就可以了 上面的两个箭头都可以进行选择 第一个箭头是代表最新的版本 这里我
  • 主存储器空间的分配和回收(原理及实现)

    内容 主存储器空间的分配和回收 目的 一个好的计算机系统不仅要有一个足够容量的 存取速度高的 稳定可靠的主存储器 而且要能合理地分配和使用这些存储空间 当用户提出申请存储器空间时 存储管理必须根据申请者的要求 按一定的策略分析主存空间的使用
  • 关于人脸识别的最全研究!

    来源 北京物联网智能技术应用协会 本文内容涵盖人脸识别发展历程 市场研究 核心技术 商业应用以及产业落地 个人看法等干货研究 注意 本文干货满满 约有2万7千字 强烈建议大家先收藏后学习 01 发展史 1 人脸识别的理解 人脸识别 Face
  • 面对多个offer,如何做选择?

    翻看了求职板块的很多内容 发现有很多应届毕业生面临着一个共性的问题 那就是同时面临多个offer时 该怎么选择 也是很纠结的一个问题 从一个生涯规划师的角度并结合个案咨询中的类似案例 提供几个视角 供有选择困惑的求职者做一些参考 希望对你们
  • G. Counting Graphs(并查集)

    Problem G Codeforces 给定一个由n个顶点组成的树 树是一个无圈的连通无向图 树的每条边都有它的权重wi 你的任务是计算满足以下四个条件的不同图形的数量 Plain Text 图形没有自环和多重边 图形的边上的权重是整数且
  • 输出三角形

    输入一个数 输出对应层数的三角形 m eval input for i in range 1 m 1 for x in range 1 m 1 i print end for j in range 1 2 i print end print
  • Flask快速入门与进阶

    欢迎来到Flask的世界 1 Flask介绍 Flask诞生于2010年 是Armin ronacher 用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架 Flask是一个使用 Python 编写的轻量级 We
  • error while loading shared libraries: libopencv_core.so.2.4: cannot open shared object file: No such

    如何解决error while loading shared libraries libopencv core so 2 4 cannot open shared object file No such file or directory
  • Python3.6下安装opencv

    opencv安装问题 1 首先你要有个python 安装Python环境后 推荐使用Anaconda 因为我3 6的python版本 在Anaconda环境下装的opencv 2 anaconda下自带有numpy等依赖包 你可以直接 pi
  • 走进Linux(一切皆文件)

    文章目录 悄悄来到Linux 进入Linux 已配置完毕 一切皆文件 常用的命令 根据实例来升级 文件 用户 进程 process 磁盘分区 disk 端口号 其他 悄悄来到Linux 在我们熟悉了Windows的骚操作以后 我们也可以尝试
  • Element UI 使用Tree组件设置节点勾选问题

    Element UI 使用Tree组件设置节点勾选问题 问题分析 1 设置 tree复选框 check strictly false 默认 父子关联 选中父级 勾选所有子选项 取消父级选中 同时取消子选项勾选 选中子选项 父选项变为半选中状
  • Java中的String的一些常用方法

    家人们好 目录 字符 字节与字符串 字符与字符串 获取指定位置的字符 字符串与字符数组的转换 给定字符串一个字符串 判断其是否全部由数字所组成 字节与字符串 实现字符串与字节数组的转换处理 字符串常见操作 字符串比较 不区分大小写比较 观察
  • 灯光 (1)平行光(Directional Light)

    1 平行光 Directional Light 定义一个光线方向向量而不是位置向量来模拟一个定向光 着色器的计算基本保持不变 但这次我们将直接使用光的direction向量而不是通过position来计算lightDir向量 struct
  • C++类中const修饰的函数与重载

    一 重载的定义 重载声明是指在同一个作用域内 可以声明几个功能类似的同名函数 但是这些同名函数的形式参数 指参数的个数 类型或者顺序 必须不同 返回值的类型不同 不能作为重载函数的判断依据 如下举例一组重载函数 void fun int a
  • FTL 入门

    最近的项目中用的是ftl文件而不是传统的jsp 于是上网查了一下 感觉这是个好东西 于是准备记录下来 以下摘自百度百科 1 概念 FreeMarker是一款模板引擎 即一种基于模板和要改变的数据 并用来生成输出文本 HTML网页 电子邮件
  • AttributeError: ‘function‘ object has no attribute ‘_name_‘

    在运行python的下面代码时 def log func def wrapper args kw print call s func name return func args kw return wrapper log def now p
  • layui table单元格事件修改值

    事件中的 this相当于document getElementById id 替代方法就是将原本 document getElementById id InnerHTML 填充代码 替换成 id html 填充代码
  • 数据结构_队列

    队列类似于日常生活中的排队 它也是一种特殊的线性表 队列和栈有相反的逻辑 但是却属于同类结构 文章目录 队列的介绍 队列的结构 队列的实现 完整代码及测试程序 循环队列 循环队列的介绍 循环队列的实现 完整代码 队列的介绍 定义 队列是一种
  • Truechain运用docker镜像搭建TrueChain测试私有环境

    https github com truechain wiki blob master task list task 20180917 md 安装docker Mac参考https blog csdn net jiang xinxing a