用树莓派和PC机搭建多节点私人以太坊网络

 发现国内很少有树莓派和电脑组建的私人区块链,所以在自己做实验的过程中记录下来分享给大家,第一次写博客,哈哈 

以太坊私有链搭建(电脑,树莓派端都适用)

(1)新建一个文件夹,例如mychain,用来保存私有链的数据。创建一个初始化的配置文件,genesis.json

$ mkdir mychain

$ cd mychain

$ vim genesis.json

然后将如下的配置信息写入到genesis.json文件中(注意:chainId不能为0)

{

  "config": {

        "chainId": 3,

        "homesteadBlock": 0,

        "eip155Block": 0,

        "eip158Block": 0

    },

  "alloc"      : {},

  "coinbase"  : "0x0000000000000000000000000000000000000000",

  "difficulty" : "0x200",

  "extraData"  : "",

  "gasLimit"  : "0x2fefd8",

  "nonce"      : "0x0000000000000042",

  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",

  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",

  "timestamp"  : "0x00"

}

注意

Insert写入文件后

Esc退出

Shift + :

wq

(2)初始化创世区块,并指定数据存放路径

$ geth --datadir mychain init genesis.json

(3)启动私有链节点,并将日志输入到mychain.log

geth --networkid 3 --datadir mychain --identity "mychain" --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpcapi "admin,debug,eth,miner,net,personal,shh,txpool,web3" --port 30303 --rpccorsdomain "*" --nodiscover console 2>>mychain.log

启动成功后进入控制台界面

4.测试

(1)创建新账户

personal.newAccount(“123456”)

创建成功将返回账户的地址

树莓派端:

查看节点信息

电脑端:

查看节点信息

注意事项:

1.电脑在同一网络,可相互ping通

2.有相同创世块文件

3.neworkid相同

4.port号(节点端口号),rpcport号(http-rpc端口号)不能重复 networkid:3

我的树莓派 ip地址:192.168.1.106 port:8546 rpcport:30302

我的PC机 ip地址:192.168.1.105 port:8545 rpcport:30303

树莓派的节点主动加入电脑端节点:(通过PC机的enode信息来连接,其中包括了ip地址和端口号)

> admin.nodeInfo.enode

admin.addPeer("enode://2aa01bad57cfcd9bc9073a3ae7cc33fcd31704e4c81990f69b586e4ddd5fbcd3a1130ff6394f25f2c25dc645f1ec301d69223e857cdd014780ebdb22597e81f3@192.168.1.105:30303")

电脑端采用相同方式添加树莓派节点

(树莓派节点可以将智能合约部署在私有链上,电脑端节点可以根据合约部署地址来调用合约,挖矿。)

 

 



 

转载于:https://www.cnblogs.com/yue-chen/p/11212234.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277127.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS6 YUM安装MariaDB10.3.10

1、先新增加一个MariaDB.repo vi /etc/yum.repos.d/MariaDB.repo[mariadb] name MariaDB baseurl http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos6-amd64/ gpgkey http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck1 官网地址特别慢,所…

统一配置数据库连接符的方法

统一配置数据库连接符的方法 统一配置数据库的方法一.Web.config(应用方便,安全性差)1.Web.config文件<appSettings><add key"strconn" value"serverlocalhost;databasedlcusmgt;uidsa;pwd"/></appSettings>2.调用文件dim strconn as st…

JIRA的text编辑模式

无意中看到了开发经理描述的一个缺陷&#xff0c;descrption里添加了图片&#xff0c;添加了代码&#xff0c;格式非常规整 尝试了图片是可以插入的&#xff0c;但是代码不知道怎么插入的&#xff0c;于是问了下他&#xff0c;当然非常详细的截图抛过来了&#xff0c;告诉我详细…

FusionInsight LibrA V100R002C80SPC300安装指南

FusionInsight LibrA是企业级的大规模并行处理关系型数据库。FusionInsight LibrA采用MPP(Massive Parallel Processing)架构&#xff0c;支持行存储与列存储&#xff0c;提供PB(Petabyte&#xff0c;2的50次方字节)级别数据量的处理能力。FusionInsight LibrA在核心技术上跟传…

女人跳槽:最重要的是你的独立,你的快乐

工作并非证明女人活着的唯一证据。尤其是眼下这一个工作。或者是因为追求更好&#xff0c;或者是因为放弃更坏。一份工作如同一段感情&#xff0c;你不要它&#xff0c;说明它不够好到留住你。没有婚姻好过坏的婚姻&#xff0c;没有工作好过让你天天流泪的工作。如果实在不满意…

云托管,边缘物理计算托管物理计算,你所需要了解的……

随着业务发展&#xff0c;传统数据中心建设复杂性越来越高&#xff0c;基建的管理、设备的繁杂、人力成本的提升&#xff0c;是否让你的运维成本越来越高&#xff1f;企业生产效率却越来越低&#xff1f; 业务快速发展&#xff0c;设备采购周期冗长&#xff0c;大量采购造成CAP…

闲话WPF之十(Dependency属性 [2] )

在前一个Post中&#xff0c;曾提到将要重点研究Dependency属性的三个方面&#xff1a;变化通知&#xff1b;属性值的继承&#xff1b;支持多个提供对象。下面&#xff0c;我将分别就这三个内容进行简单地说明。【变化通知】 在任何时候&#xff0c;只要Dependency属性的值发生了…

1037 Magic Coupon

题目链接&#xff1a;https://pintia.cn/problem-sets/994805342720868352/problems/994805451374313472 这个题目有毒&#xff0c;开始我的while判断是使用的相乘大于0这种判断方式&#xff0c;但是最后一个案例始终过不了&#xff0c;可能是因为越界了&#xff0c;但是越界的…

利用解构赋值获取后端特定字段数据

很多时候&#xff0c;后端接口传过来的数据并不正好是我们需要的。有些场景下会有很多不需要的字段。 这时如果采用单个赋值的方法赋值数据无疑会比较麻烦。解决的办法就是利用解构赋值。 mounted(){let objs {name:test,sex:nan,caree:kaifa,height:180,country:country};({na…

理解ORACLE数据库字符集

一&#xff0e;引言 ORACLE数据库字符集&#xff0c;即Oracle全球化支持(Globalization Support)&#xff0c;或即国家语言支持&#xff08;NLS&#xff09;其作用是用本国语言和格式来存储、处理和检索数据。利用全球化支持&#xff0c;ORACLE为用户提供自己熟悉的数据库母语环…

软件设计师09-面向对象-用例图

感谢任铄老师滴视频 用例图 1&#xff09;描述一组用例、参与者及它们之间的关系 2&#xff09;用例模型用于需求分析阶段 3&#xff09;关系&#xff08;依赖关系&#xff09;&#xff1a;1&#xff09;包含&#xff08;include&#xff09; 1&#xff09;两个以上用例具有共同…

利用正则表达式截取特定字符中间字符

有如下场景&#xff0c;已知一个长字符串&#xff0c;需要获取指定字符串之间的字符。 // 已知字符串 var str body908888huhuc实测实《hu需要body和《hu之间的字符串。定义正则表达式。 var reg /(?<body).(?《hu)/;上述正则表达式利用了&#xff1a;获取指定字符串之后…

资源的积累

最近整理机器里边的各种文档&#xff0c;进行异地备份&#xff0c;整理后&#xff0c;看了看尺寸&#xff0c;天呀&#xff0c;竟然有855M&#xff0c;主要是各种文档、图片和代码等非2进制的东东。我按照日期整理了一下&#xff0c;最久的大概是在2003年&#xff0c;公司是在2…

【MySQL】4、Select查询语句

4.Select查询语句 4.1、select语句 <?php $servername "localhost"; $username "username"; $password "password"; $dbname "myDB";// 创建连接 $conn mysqli_connect($servername, $username, $password, $dbname); // Che…

一、环境调试确认

1、确认系统网络 2、确认yum可用 3、确认关闭iptables规则 4、确认停用selinux 两项安装 yum -y install gcc gcc-c autoconf pcre pcre-devel make automake yum -y install wget httpd-tools vim 一次初始化 cd /opt/ mkdir app backup download logs work转载于:https…

JavaScript方法

1、hasOwnProperty&#xff1a;是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是&#xff0c;此方法无法检查该对象的原型链中是否具有该属性&#xff0c;该属性必须是对象本身的一个成员。isPrototypeOf是用来判断要检查其原型链的对象是否存在于指定对象实…

Ajax:如何运用updatepanle进行局部刷新

1.设定ScriptManager的EnablePartialRendering"true"(一般默认为true)2.设定要进行局部刷新panel的UpdateMode"Conditional"(本panel 的id为zz) 这样就可以保在本panle内的控件操作refresh页面时&#xff0c; 不会将整个page刷新&#xff0c;而刷新本pan…

Shell语法—— while 条件语句

while 循环语句 while 循环语句语法格式为&#xff1a; while < 条件表达式 > do指令 done 有关脚本运行的相关用法 命令说明sh file.sh &把 file.sh 脚本放到后台运行&#xff08;后台运行脚本的常用方法&#xff09;ctlc停止执行当前脚本或任务ctlz暂停执行当前脚本…

C变量常量

变量是指其值可以变化的量。计算机中&#xff0c;指令代码、数据都存储于内存中。变量也需要存储在内存中。在计算机中&#xff0c;每个变量都被分配了一块内存空间&#xff0c;在这些空间里存储的就是变量的值。变量之所以可以变化&#xff0c;就是这个存储空间可以存储不同的…

slot

slot就是父组件把内容分发给子组件,插槽模板是slot&#xff0c;它是一个空壳子&#xff0c;因为它的显示与隐藏以及最后用什么样的html模板显示由父组件控制。但是插槽显示的位置确由子组件自身决定&#xff0c;slot写在组件template的什么位置&#xff0c;父组件传过来的模板将…