您好,欢迎您来到国盈网!
官网首页 小额贷款 购房贷款 抵押贷款 银行贷款 贷款平台 贷款知识 区块链

国盈网 > 区块链 > 以太坊(Ethereum)私链建立 、合约编译、部署完全教程(1)

以太坊(Ethereum)私链建立 、合约编译、部署完全教程(1)

区块链 岑岑 本站原创

/usr/bin/ruby-e & # 8216;$(curl-fsSL https://raw .githubusercontent .com/home brew/install/master/install)& # 8217;酿造设备的可靠性

备注:安装时间可能有点长,请耐心等待…?备注:安装时间可能有点长,请耐心等待…?备注:安装时间可能会稍长,请耐心等待…

如果遇到下一个错误,请到http:// blog。csdn .net/sico 2 sico/article/details/71082130

MAC OS钥匙串中的开放源代码基础凭据可能无效。请使用:printf & # 8216protocol=https n host=github .com n & # 8216| git凭证-OSX钥匙链时代或创建个人访问令牌:https://github。com/settings/tokens/new?scopes=gist,public _ repo描述=home brew

下载源代码(tar。gz)

李跃春:下载李跃春$ CD go-以太坊-1.5.9李跃春:go-以太坊-1.5.9李跃春$禁用/用户/李跃春/下载/Go-以太坊-1 .5 .9李跃春:Go-以太坊-1 .5 .9李跃春

1.创建一个文件夹来存储您的私有链接数据李月春:1015岳春丽$ mkdir privchanliyuechun:1015岳春丽$ pwd/users/liyuechun/desktop/1015李月春:1015岳春丽$ lsprivchanliyuechun:1015岳春丽$

2。使用geth加载geth-RPC-rpcaddr 127。0 .0 .1 RPC端口8545-dev-datadir特权链

执行上面的命令,您应该能够看到以下信息:

INFO [10-1503:14:50] IPC端点打开:/Users/李跃春/desktop /1015/priv chain/geth。IPC信息[10-1503:14:50]HTTP端点打开:http://127.0.0.1:8545。

如果切换到私有链文件夹,会看到geth?Geth.ipc,还有?密钥库。

李月春:1015岳春丽$ CD privchain/李月春:特权链岳春丽$ lsgethgeth。ipckeystoreliyuehun:priv Chain Yue Chunli $保持节点运行,不要关闭终端,重新打开一个终端,用access附件连接节点,打开Geth控制台Chun:priv Chain Yue $ Geth attach IPC:/Users/李越Chun/Desktop/1015/priv Chain/Geth。工业过程控制(工业过程控制的简称)欢迎来到Geth JavaScript控制台!例如:Geth/v 1。7 .1-稳定-05101641/达尔文-amd64/go 1。9.一模块:admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 RPC:1.0 shh:1.0 TX pool:1.0 web 3:1.0。

3.相关api gravity(美国石油学会)责令查账。

私人的。列表帐户[]

创建一个帐户

私人的。新帐户(& # 8216;李跃春& # 8217;)’0 XB 6d 7d 842 e 7 DC 9016 fa 6900 a 183 B2 be 26 fc 90 B2 d 8 & # 8216;

PS:里面的李月春是你账号的密码。输入您最喜欢的密码。

查看帐户

私人的。列出帐户[& # 8216;0 XB 6d 7d 842 E7 DC 9016 fa 6900 a183 B2 be 26 fc 90 B2 D8 & # 8216;]

4.web 3命令https:// Ethernet builder。Git书籍。io/guide/content/en/ether eum _ JavaScript _ API .超文本标记语言

网页3 .eth .硬币基数& # 8217;0 XB 6d 7d 842 E7 DC 9016 fa 6900 a183 B2 be26 fc 90 B2 D8 & # 8216;

5。编写智能合同代码pragma solidity ^0.4.4;;契约测试{函数乘法(单元a)returns(uint d){ returns a* 7;;}}

6.获取智能合约的字节码和abi代码并复制到https://remix.ethereum.org,编译它们,然后复制字节码。

6060604052341561000 f 5760000080 FD 5b 60 ab 8061001 e 6000396000 f 300604052600357 c 0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000。逃进贝松的一串

http://www .贝松。com

{ ‘合同名称& # 8216;: ‘测试& # 8216;,’阿比& # 8217;:[{‘常数& # 8217;:假的,& # 8217;输入& # 8217;:[{‘姓名& # 8217;:’一& # 8216;,’类型& # 8217;:’uint256 & # 8242}],’姓名& # 8217;:’乘& # 8216;,’输出& # 8217;:[{‘姓名& # 8217;:’d & # 8216,’类型& # 8216;通过abi创建合同对象

风险价值合同信息=开。分析(& # 8216;{ ‘合同名称& # 8216;: ‘测试& # 8216;,’阿比& # 8217;:[{‘常数& # 8217;:假的,& # 8217;输入& # 8217;:[{‘姓名& # 8216;,’类型& # 8217;:’uint256 & # 8242}],’姓名& # 8217;:’乘& # 8216;,’输出& # 8217;:[{‘姓名& # 8217;:’d & # 8216,’类型& # 8217;:’Uint256。}],姓名:& # 8217;乘法,输出:[{。}],应付:假,类型:上力金融边肖2022 & # 8216;函数& # 8217;}],eth:{ accounts:[& # 8216;0 x2 abf 46d 8 b 0d 940 cdeedd 55872 BC 0648 add 40227d & # 8216;],blockNumber: 384,货币基础:& # 8217;0 x2 abf 46d 8 b 0d 940 cdeedd 55872 BC 0648 add 40227d & # 8216;,编译:lll: function(),serpent: function(),solidity: function()},defaultAccount: undefined,default block:& # 8217;最新、汽油价格:0k)、getblocktransactioncount:function()、getblockuncount: function()、getcoinbase: function(回调)、getCompilers: function()、getGasPrice: function(回调)、getHashrate: function(回调)、getMining: function(回调)、getPendingTransactions:function(回调)、getProtocolVersion: function(回调)、getRawTransaction: function()、getRawTransaction:function()、getStorageAt: function()、getSyncing: function(回调)、getTransaction: function()、上力财经边肖2000

8.查看coin base > account 1 = web 3 . eth . coin base & # 8221;0x 2 abf 46d 8 b 0d 940 cdeedd 55872 BC 0648 add 40227d & # 8221;& gtweb 3 . eth . get balance(account 1)0 & gt;

如果余额大于0,继续,否则,开始挖掘。& gtminer . start();null & gt

在挖掘的过程中,切换到节点终端,你会发现你一直在挖掘。

上理金融边肖2022

如果觉得够了,可以运行下一个命令停止挖掘。

miner . stop();

9.停止采矿,检查平衡。

& gtminer . start();null & gtminer . stop();true & gtweb 3 . eth . get balance(account 1)1.152 e+21 & gt;

10.解锁coinbase账号,我们通过coinbase账号liyuechun支付部署合同:改成你的密码。& gtpersonal . unlock account(account 1,& # 8216;李月春& # 8217;)true & gt

11.估计手续费

& gt字节码= & # 8220;6060604052341561000 f 57600080 FD 5b 60 ab 8061001 e 6000396000 f 300606040526000357 c 01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000”6060604052341561000 f 57600080 FD 5b 60 ab 8061001 e 6000396000 f 300606040526000357 c 01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000& gtweb 3 . eth . estimate gas({ data:bytecode })错误:无效参数0: json:无法将没有0x前缀的十六进制字符串解组到hexutil类型的Go结构字段CallArgs.data中。字节在web3.js:3104 :20在web3.js:6191:15在web3.js:5004:36在:1:1 & gt;字节码= & # 8220;0x 6060604052341561000 f 57600080 FD 5b 60 ab 8061000 e 6000396000 f 300606040526000357 c 0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000”0x 6060604052341561000 f 57600080 FD 5b 60 ab 8061000 e 6000396000 f 300606040526000357 c 0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000& gtweb 3 . eth . estimate gas({ data:bytecode })98391 & gt;

注意:0x需要加在字节码之前。手续费大概98391魏。12.部署契约,并设置回调函数以便于理解。

& gtcontract instance = my contract . new({ data:bytecode gas:1000000,from: account1},function(e,contract){ if(!e){ if(!contract . address){ console . log(& # 8220;合同交易发送:交易哈希:& # 8220;+contract . transaction hash+& # 8221;等待被开采& # 8230;”);} else { console . log(& # 8220;合同已开采!地址:& # 8220;+合同.地址);console.log(合同);} }else{ console.log(e) }})契约事务发送:事务哈希:0x 5 e 2 aebbf 400d 71 a 32 e 807 DC 3 f 11 f 1053 b 6 ee 3 B2 a 81435 ed 8 ace 2 fa 54 ee bb 9 f3d等待挖掘& # 8230;{ abi: [{ constant: false,输入:[{ & # 8230;}],姓名:& # 8220;乘& # 8221;,输出:[{ & # 8230;}],应付:假,类型:& # 8220;函数& # 8221;}],地址:未定义,事务哈希:& # 8220;0x 5 e 2 aebbf 400d 71 a 32 e 807 DC 3 f 11 f 1053 b 6 ee 3 B2 a 81435 ed 8 ace 2 fa 54 ee bb 9 f3d & # 8221;} & gt

13.您的合同正在等待挖掘,开始挖掘,等待一段时间,然后停止> miner . start()null & gt;合同已开采!地址:0 xbf 8 b 24283 f 2516360d 3a 4 ba 1 db 0 df 78 AE 74689 db[Object Object]& gt;miner . stop()true & gt;

14.检查合同是否已成功部署。

& gteth . get code(contract instance . address)& # 8221;0x 60606040526000357 c 0100000000000000000000000000000000000000000000000090043ffffffff 168063 c 6888 fa 114603d 575 b 60080 fd5b 3415604757600900000000904363 ffffffff 588 c 6888 f a 1114600800003d 576757603d 5760& gt

15.调用合同方法>;contract instance . multiply . call(6)42 & gt;

PS:这里之所以加call,是因为乘法函数不加常数。^0.4.4实用主义;契约测试{函数乘法(uint a)返回(uint d){返回a * 7;}}

结束游戏!!!!

技术交流

区块链技术交流群:348924182

本网站声明:网站内容来源于网络。如有侵权,请联系我们,我们会及时处理。

温馨提示:注:内容来源均采集于互联网,不要轻信任何,后果自负,本站不承担任何责任。若本站收录的信息无意侵犯了贵司版权,请给我们来信(j7hr0a@163.com),我们会及时处理和回复。

原文地址"以太坊(Ethereum)私链建立 、合约编译、部署完全教程(1)":http://www.guoyinggangguan.com/qkl/160916.html

微信扫描二维码关注官方微信
▲长按图片识别二维码