从零构建基于以太坊(Ethereum)钱包Parity联盟链

当前位置:首页 > 币圈百科 > 从零构建基于以太坊(Ethereum)钱包Parity联盟链

从零构建基于以太坊(Ethereum)钱包Parity联盟链

2022-12-28币圈百科253

什么情况下可以建立自己测试用的胰癌胚抗原链?

公司内网或无对外网络,无法同步区块降低测试时等待区块的时间不想碰到testrpc各种雷

活动方案链特点有

有别于工作证明需要解数学难题来产生块,PoA是依靠预设好的权威节点,负责产生街区。可依照需求设定权威节点数量。可指定产生街区的时间,例如收到交易的5秒后产生街区。一般的以太坊节点也可以连接到胰癌胚抗原链,正常发起交易、合同等十.大纲

奇偶校验钱包下载安装设置链条规格设置两个节点设置账号(账户)启动权威节点连接两个节点发送交易分享给其他节点

一、奇偶校验钱包下载安装

之前的教程中我们讲解了下雾钱包、MetaMask、myetherwallet钱包,这篇教程中,我们系统介绍一下平价钱包的使用,为下一篇文章中联盟链搭建做铺垫

奇偶性钱包下载安装https://平价。io。

p1如官网所示,与以太坊区块链奇偶校验交互的最快、最安全的方式是最快最安全的钱包

打开官网,我们看到有三种安装方式,第一种,直接下载安装,第二种,酿造安装,第三种,码头工人安装

在我们案例中,我们通过啤酒来进行安装1、获取家酿

/usr/bin/ruby-e ' $(curl-fsSL https://raw。githubusercontent。com/home brew/install/master/install)'

2、为您的家酿"小桶"列表添加奇偶校验

打开终端,输入下面的命令,按输入。

brew tap奇偶校验技术/奇偶校验技术

3、安装奇偶校验

稳定版啤酒安装奇偶校验稳定最新版啤酒安装奇偶校验最新开发版啤酒安装奇偶校验-主更新最新版本啤酒更新啤酒升级奇偶校验

酿造重新安装奇偶校验

4、查看安装版本

淳:~岳元平价-版平价版本奇偶校验/v 1。8 .2-beta-1b 6588 c-2017 10 25/x86 _ 64-MAC OS/rust C1。21 .0版权所有2015、2016、2017奇偶技术(英国)有限公司许可GPLv3:GNU GPL版本3或更高版本。这是自由软件:你可以自由地修改和重新发布它。在法律允许的范围内,不提供任何担保。由伍德/帕龙扬/科特维奇/Drwi?ga/Volf Haber Meier/cza ban/gree ff/Gotchac/Redmannliyuechun:~ yue chunli $

二、设置链规格

活动方案链需要设置一个创世区块。x]{ 'name' 'DemoPoA '' engine '{ ' authority round '{ ' step duration '' 5 '' validators' { 'list' [ ] } } },' params '{ ' gaslimitboundvisor ''0x 0400 '' maximumExtraDataSize' '0x20 '' minGasLimit' '0x1388 '' networkID' '0x2323' },' genesis '{ ' seal '{ ' authority round '{ ' step '{ ' builtin '{ '0x 0 builtin '{ '设定成5秒产生一个区块。 验证器?设定权威的地方,目前先空著,后面创建账户之后再回来填入十.将上面的文件保存到桌面的一个文件中,保存为demo-spec.json。

三、设置两个节点

在我们这篇文章中,我们在同一台电脑设置两个节点,跟我们讲解以太坊私网建立(2) 同一台电脑/不同电脑运行多个节点时,如果在同一台电脑设置两个节点,需要将rpcport和港口设置为不同的值,否则就会发生冲突,POA链中也是一样,需要将一些参数设置为不同的值。x]-d:指定存储资料与账号的目录-端口:指定平价的网络端口,可用来让其他结节连接- jsonrpc-port:这是JSON RPC端口,使用web3.js时会需要用户界面端口:奇偶校验提供的基于网的用户界面端口

可以用下列指令启动奇偶校验节点。

奇偶校验链演示规格。JSON-d奇偶校验0-端口30300-ui-端口8180-JSON rpc-端口8540-JSON RPC-API web 3,eth,net,personal,parity,parity_set,traces,RPC,parity_accounts

除了打一长串的指令外,奇偶校验也提供更为简洁的配置档案设定方式,使用?-配置?即可引用配置文件。node0?使用如下配置文件?节点0。汤姆:[奇偶]链='演示规格。JSON ' base _ path=' parity 0 '[network]port=30300[rpc]port=8540 API=[' web 3 '' eth '' net '' personal '' parity '' parity_set '' traces '' RPC '' parity _ accounts '][ui]port=8180[web sockets]port=8456 node 1?使用如下配置文件?节点1。汤姆:[奇偶]链='演示规格。JSON ' base _ path=' parity 1 '[network]port=30301[rpc]port=8541 API=[' web 3 '' eth '' net '' personal '' parity '' parity_set '' traces '' RPC '' parity _ accounts '][ui]port=8181[web sockets]port=8457

四、设置账号(账户)

我们总共需要设置三个账号,两个权威和一个用户账号

第一步:首先启动node0?奇偶校验配置节点0.toml

打开网页http://本地主机:8180,按照步骤创建一个用户账号

node0

p2新增权限帐户,使用恢复功能,为了示范一致性,我们使用?node0?当作?通行短语。p3p4p5p6p7

到目前为止我们已经完成节点0的账号设置。x权限账号:0x 00bd 138 Abd 70 e 2 f 00903268 F3 db 08 f2d 25677 c 9 euser账号:0x 0064 b 0999 c 0142 ee 99 ab 0 CEC 054 Bab 53 Fe 0 a 3 ECC

第二步:设置节点一的账号,启动奇偶校验配置节点1.toml。步骤相同,连接到?http://localhost:8181?通行短语使用?节点1 .p8p9p10

这样就完成了节点一的账号设置。x]权威账号:0x 00 F9 b 30838 ca 40 c8 a53 c 672840 acbdec 6 fcdb 180

第三步:将授权帐户写入演示规范。json文件p11'验证器'{ ' list '['0x 00 F9 b 30838 ca 40 c8 a 53 c 672840 acbdec 6 fcdb 180 ''0x 00 BD 138 Abd 70 e2f 00903268 F3 db 08 f2d 25677 c 9 e ']}

再将用户帐户加入账户,並给一些平衡,后续可以使用。x '0x 0064 b 0999 c 0142 ee 99 ab 0 CEC 054 Bab 53 Fe 0 a 3 ECC '{ ' balance '' 1000000000000 ' }

完成后的演示规范。json如下:p12{ 'name' 'DemoPoA '' engine '{ ' authority round '{ ' params '' 5 '' validators '{ ' list '['0x 00 F9 b 30838 ca 40 c8 a 53 c 672840 acbdec 6 fcdb 180 ''0x 00 BD 138 Abd 70 e 2 f 00903268 F3 db 08 f2d 25677 c 9 e ']} },' params的000000" } }, "difficulty": "0x20000", "gasLimit": "0x5B8D80" }, "accounts": { "0x0000000000000000000000000000000000000001": 蓑衣网小编2022 { "balance": "1", "builtin": { "name": "ecrecover", "pricing": { "linear": { "base": 3000, "word": 0 } } } }, "0x0000000000000000000000000000000000000002": { "balance": "1", "builtin": { "name": "sha256", "pricing": { "linear": { "base": 60, "word": 12 } } } 蓑衣网小编2022 }, "0x0000000000000000000000000000000000000003": { "balance": "1", "builtin": { "name": "ripemd160", "pricing": { "linear": { "base": 600, "word": 120 } } } }, "0x0064B0999c0142eE99aB0ceC054BAb53fe0a3EcC": { "balance": "10000000000000000000000" }, "0x0000000000000000000000000000000000000004": { "balance": "1", "builtin": { "name": "identity", "pricing": { "linear": { "base": 15, "word": 3 } } } } }}

五、启动Authority node

为了启动Authority node来产生区块,我们必须设定负责产生block的signer,分別是?node0?和?node1 account。

1、第一步,创建一个node.pwds文件,写入node0与node1的password,内容如下:

node0node1

2、第二步,在node0.toml文件中加入[account]及[mining]设置,如下:

[parity]chain = "demo-spec.json"base_path = "parity0"[network]port = 30300[rpc]port = 8540apis = ["web3", "eth", "net", "personal", "parity", "parity_set", "traces", "rpc", "parity_accounts"][ui]port = 8180[account]password = ["node.pwds"][mining]engine_signer = "0x00Bd138aBD70e2F00903268F3Db08f2D25677C9e"reseal_on_txs = "none"

3、第三步,在node1.toml文件中加入[account]及[mining]设置,如下:

[parity]chain = "demo-spec.json"base_path = "parity1"[network]port = 30301[rpc]port = 8541apis = ["web3", "eth", "net", "personal", "parity", "parity_set", "traces", "rpc", "parity_accounts"][ui]port = 8181[websockets]port = 8457[account]password = ["node.pwds"][mining]engine_signer = "0x00F9B30838ca40c8A53c672840acbDec6fCDb180"reseal_on_txs = "none"

4、第四步,Step 4 分別启动两个node

parity --config node0.tomlparity --config node1.toml

六、连接两个节点

使用Postman透过JSON RPC来测试。

1、第一步,Post下列JSON数据至?http://localhost:8540?以取得 node0 的enode资料

{ "jsonrpc":"2.0", "method":"parity_enode", "params":[], "id":0}

获取到的数据如下:

{ "jsonrpc": "2.0", "result": "enode://cfb3af513da3a7a8138450f0dc01fa38cb2ac837744dc645038940287f4dce3f416f0e7e17fd10619a263c360d9324fd2dcd8753c4500fcc54cf84e076b39cd6@192.168.10.101:30300", "id": 0}

"enode://cfb3af513da3a7a8138450f0dc01fa38cb2ac837744dc645038940287f4dce3f416f0e7e17fd10619a263c360d9324fd2dcd8753c4500fcc54cf84e076b39cd6@192.168.10.101:30300"是node0的标识。下一步中我们将将它加入到node1中以实现两个节点之间的连接。

2、第二步,将 node0 的enode加入 node1 ,Post下列JSONs数据至node1 (http://localhost:8541?)

{ "jsonrpc":"2.0", "method":"parity_addReservedPeer", "params":["enode://cfb3af513da3a7a8138450f0dc01fa38cb2ac837744dc645038940287f4dce3f416f0e7e17fd10619a263c360d9324fd2dcd8753c4500fcc54cf84e076b39cd6@192.168.10.101:30300"], "id":0}

p13

返回的数据如下,result为true,说明连接成功:

{ "jsonrpc": "2.0", "result": true, "id": 0}

再切换到node1的终端,会看到下面的数据:

1/25 peers 13 KiB chain 11 KiB db 0 bytes queue 10 KiB sync RPC: 0 conn, 0 req/s, 24 μs

p14如上图所示,表示连接成功。

七、发送交易

在我们这个案例中,我们一个创建了三个账号,一个用户账号,两个POA账号,刚开始的时候我们为用户账号初始化了10000 ETH。如下图所示,账号与账号之间可以相互转账。

p15

八、分享给其他节点

在开发时通常会将node跑在server上,让其他人可以通过JSON RPC port连接上去使用,此时只要在config文件里面加入?[interface]?设置即可。p16假设server ip为192.168.1.5,将?node0.toml?修改如下:p18[parity]chain = "demo-spec.json"base_path = "parity0"[network]port = 30300[rpc]port = 8540apis = ["web3", "eth", "net", "personal", "parity", "parity_set", "traces", "rpc", "parity_accounts"]interface = "192.168.1.5"[ui]port = 8180[account]password = ["node.pwds"][mining]engine_signer = "0x00Bd138aBD70e2F00903268F3Db08f2D25677C9e"reseal_on_txs = "none"p19node1.toml?修改如下:p20[parity]chain = "demo-spec.json"base_path = "parity1"[network]port = 30301[rpc]port = 8541apis = ["web3", "eth", "net", "personal", "parity", "parity_set", "traces", "rpc", "parity_accounts"]interface = "192.168.1.5"[ui]port = 8181[websockets]port = 8457[account]password = ["node.pwds"][mining]engine_signer = "0x00F9B30838ca40c8A53c672840acbDec6fCDb180"reseal_on_txs = "none"

技术交流

区块链技术交流QQ群:348924182「区块链部落」官方公众号

从零构建基于以太坊(Ethereum)钱包Parity联盟链 | 分享给朋友: