当前位置:首页 > 知识学习 > 详情

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

2023-06-23 08:35:28 阅读(33) 极品歌词网
/usr/bin/ruby-e ' $(curl-fsSL https://raw。githubusercontent。com/home brew/install/master/install)'酿造安装可靠性

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

如果碰见接下来的错误,请移步:http://博客。csdn。net/sico 2 sico/article/details/71082130

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

下载源代码(焦油。gz)

李月春:下载李月春$ CD go-以太坊-1.5.9李月春:去-以太坊-1.5.9李月春$残疾人/用户/李月春/下载/去-以太坊-1 .5 .9李月春:去-以太坊-1 .5 .9李月春$ make geth1 .创建一个文件夹来存储你的私链数据李月春:1015岳春丽$ mkdir privchanliyuechun:1015岳春丽$ pwd/Users/liyue chun/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/李越春/桌面/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链岳春丽$保持节点的运行,不要关闭终端,重新打开一个终端,使用获取附件连接节点,并且打开Geth控制台chun:priv chain岳$ Geth attach IPC:/Users/李越chun/Desktop/1015/priv chain/Geth。工业程序控制( industrial process control的缩写)欢迎来到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.03 .相关美国石油学会(美国石油协会)命令

查看账户

个人。列表帐户[]

创建账户

个人。新帐户('李越春')' 0 XB 6d 7d 842 e 7 DC 9016 fa 6900 a 183 B2 be 26 fc 90 B2 d 8 '

PS:里面的李月春是你账户的密码,输入你自己喜欢的密码

查看账户

个人。列出帐户[' 0 XB 6d 7d 842 E7 DC 9016 fa 6900 a183 B2 be 26 fc 90 B2 D8 ']4 . web 3命令

https://以太构建器。git书籍。io/guide/content/en/ether eum _ JavaScript _ API。html

web 3。eth。硬币基地' 0 XB 6d 7d 842 E7 DC 9016 fa 6900 a183 B2 be26 fc 90 B2 D8 '5。编写智能合约代码pragma solidity ^0.4.4;契约测试{函数乘法(单位a)返回(uint d){返回a * 7;}}6 .获取智能合约字节码和abi

代码拷贝到https://remix.ethereum.org,编译,然后拷贝字节码。

6060604052341561000 f 576000080 FD 5b 60 ab 8061001 e 6000396000 f 30060604052600357 c 0100000000000000000000000000000000000000000000000000000000000000000。在贝森中转义成字符串http://www。贝森。com

{ ' contract _ name ': ' test ','abi':[{'constant':false,'inputs':[{'name':'a ','type':'uint256'}],'name':'multiply ','outputs':[{'name':'d ','type '通过abi创建合约对象

风险值合同信息=JSON。解析(' { ' contract _ name ': ' test ','abi':[{'constant':false,'inputs':[{'name ','type':'uint256'}],'name':'multiply ','outputs':[{'name':'d ','type':'uint256.}],名称:'乘法,输出:[{.}],应付款:false,type: 尚力财经小编2022 'function' }],eth:{ accounts:[' 0 x2 abf 46d 8 b 0d 940 cdeedd 55872 BC 0648 add 40227d '],blockNumber: 384,币基:' 0 x2 abf 46d 8 b 0d 940 cdeedd 55872 BC 0648 add 40227d ',编译:lll: function(),serpent: function(),solidity: function() },defaultAccount: undefined,defaultBlock:'最新,汽油价格:0k), getBlockTransactionCount: function(), getBlockUncleCount: function(), getCode: function(), getCoinbase: function(callback), getCompilers: function(), getGasPrice: function(callback), getHashrate: function(callback), getMining: function(callback), getPendingTransactions: function(callback), getProtocolVersion: function(callback), getRawTransaction: function(), getRawTransactionFromBlock: function(), getStorageAt: function(), getSyncing: function(callback), getTransaction: function(), 尚力财经小编2022 getTransactionCount: function(), getTransactionFromBlock: function(), getTransactionReceipt: function(), getUncle: function(), getWork: function(), iban: function(iban), icapNamereg: function(), isSyncing: function(callback), namereg: function(), resend: function(), sendIBANTransaction: function(), sendRawTransaction: function(), sendTransaction: function(), sign: function(), signTransaction: function(), submitTransaction: function(), submitWork: function() }, at: function(address, callback), getData: function(), new: function()}8. 检查coinbase账号余额> account1 = web3.eth.coinbase"0x2abf46d8b0d940cdeedd55872bc0648add40227d"> web3.eth.getBalance(account1)0> 如果余额大于0,继续,否则,开始挖矿。> miner.start();null>

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

尚力财经小编2022

以太坊(Ethereum)私链建立 、合约编译、部署完全教程(1)-极品歌词网如果你觉得差不多了,可以运行接下来的命令停止挖矿。

miner.stop();

9. 停止挖矿,并且查余额

> miner.start();null> miner.stop();true> web3.eth.getBalance(account1)1.152e+21> 10. 解锁coinbase账号,我们通过coinbase账号来付费部署合约liyuechun: 换成你的密码。> personal.unlockAccount(account1, 'liyuechun') true>

11. 预估手续费

> bytecode = "6060604052341561000f57600080fd5b5b60ab8061001e6000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa114603d575b600080fd5b3415604757600080fd5b605b60048080359060200190919050506071565b6040518082815260200191505060405180910390f35b60006007820290505b9190505600a165627a7a7230582067d7c851e14e862886b6f53dad6825135557fb3a4b691350c94ea5b80605f6770029""6060604052341561000f57600080fd5b5b60ab8061001e6000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa114603d575b600080fd5b3415604757600080fd5b605b60048080359060200190919050506071565b6040518082815260200191505060405180910390f35b60006007820290505b9190505600a165627a7a7230582067d7c851e14e862886b6f53dad6825135557fb3a4b691350c94ea5b80605f6770029"> web3.eth.estimateGas({data: bytecode})Error: invalid argument 0: json: cannot unmarshal hex string without 0x prefix into Go struct field CallArgs.data of type hexutil.Bytes at web3.js:3104:20 at web3.js:6191:15 at web3.js:5004:36 at :1:1> bytecode = "0x6060604052341561000f57600080fd5b5b60ab8061001e6000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa114603d575b600080fd5b3415604757600080fd5b605b60048080359060200190919050506071565b6040518082815260200191505060405180910390f35b60006007820290505b9190505600a165627a7a7230582067d7c851e14e862886b6f53dad6825135557fb3a4b691350c94ea5b80605f6770029""0x6060604052341561000f57600080fd5b5b60ab8061001e6000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa114603d575b600080fd5b3415604757600080fd5b605b60048080359060200190919050506071565b6040518082815260200191505060405180910390f35b60006007820290505b9190505600a165627a7a7230582067d7c851e14e862886b6f53dad6825135557fb3a4b691350c94ea5b80605f6770029"> web3.eth.estimateGas({data: bytecode})98391> 备注:字节码前面需要添加0x。手续费大概为98391wei。

12. 部署合约,为了方便理解,设置一个回调函数

> contractInstance = myContract.new({data: bytecode gas: 1000000, from: account1}, function(e, contract){ if(!e){ if(!contract.address){ console.log("Contract transaction send: Transaction Hash: "+contract.transactionHash+" waiting to be mined..."); }else{ console.log("Contract mined! Address: "+contract.address); console.log(contract); } }else{ console.log(e) }})Contract transaction send: Transaction Hash: 0x5e2aebbf400d71a32e807dc3f11f1053b6ee3b2a81435ed8ace2fa54eebb9f3d waiting to be mined...{ abi: [{ constant: false, inputs: [{...}], name: "multiply", outputs: [{...}], payable: false, type: "function" }], address: undefined, transactionHash: "0x5e2aebbf400d71a32e807dc3f11f1053b6ee3b2a81435ed8ace2fa54eebb9f3d"}> 13. 你的合约等待挖矿,开始挖矿,等一会儿,停止> miner.start()null> Contract mined! Address: 0xbf8b24283f2516360d3a4ba1db0df78ae74689db[object Object]> miner.stop()true>

以太坊(Ethereum)私链建立 、合约编译、部署完全教程(1)-极品歌词网以太坊(Ethereum)私链建立 、合约编译、部署完全教程(1)-极品歌词网14. 检查合约是否部署成功

> eth.getCode(contractInstance.address)"0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa114603d575b600080fd5b3415604757600080fd5b605b60048080359060200190919050506071565b6040518082815260200191505060405180910390f35b60006007820290505b9190505600a165627a7a7230582067d7c851e14e862886b6f53dad6825135557fb3a4b691350c94ea5b80605f6770029"> 15. 调用合约方法> contractInstance.multiply.call(6)42> PS: 这里添加call的原因是因为multiply函数没有添加constant。pragma solidity ^0.4.4;contract test { function multiply(uint a) returns(uint d){ return a * 7; }}

Over Game!!!!

技术交流

区块链技术交流QQ群:348924182

上一篇:小龙虾的嘌呤ling含量高吗(小龙虾的嘌呤含量高吗?)

下一篇:省是什么意思(自省是什么意思)

推荐阅读:

  • btok安卓app最新版本下载 btok交易最新手机

    btok安卓app最新版本下载 btok交易最新手机

    btok交易所最新版是一款非常正规靠谱的虚拟货币交易平台中币交易所最新版为用户提供了丰富的金融货币交易的功能,轻松在线交易,随时可以在线进行查看,用户在这个环境里面可以很轻松的获得想要的交易服务。btok特色…
    2023-06-23 阅读(30)
  • 官方手机哪里下载pig币交易中心 pig币该如何注册?一文了解pig币交易所注册流程细节

    官方手机哪里下载pig币交易中心 pig币该如何注册?一文了解pig币交易所注册流程细节

    官方手机哪里下载pig币交易中心pig币该如何注册?一文了解pig币交易所注册流程细节下载欧易查看core币2023年最新价格pig币app是一款十分实用的数字货币交易平台,用户们可以通过pig币appapp轻松实现安全、可靠、稳定…
    2023-06-23 阅读(33)
  • 竞争与合作的关系(竞争与合作的关系的例子)

    竞争与合作的关系(竞争与合作的关系的例子)

    竞争与合作什么关系竞争与合作是相互依存,不可分割的关系。竞争指在人际相互作用中,每一个参加者在积极争取个人目标的同时也在削弱或减少对方的利益。合作与竞争相对应,指参加者在积极争取个人目标的同时也协助对…
    2023-06-23 阅读(27)
  • Blockchain比特币钱包注册及使用教程

    Blockchain比特币钱包注册及使用教程

    区块链钱包是一款免费的比特币在线钱包,可以在任何地方的手机和电脑上使用,在世界各地都可以免费转账汇款。请仔细阅读接下来的区块链钱包注册教程,并正确操作。成功获取钱包地址后即可使用。1。打开浏览器,访问…
    2023-06-23 阅读(25)
  • 唐山市行政区划(唐山市行政区划码)

    唐山市行政区划(唐山市行政区划码)

    唐山是属于哪个省河北剩唐山,简称“唐”,河北省辖地级市,位于河北东部、华北平原东北部,南临渤海,北依燕山,毗邻京津,地处华北与东北通道的咽喉要地,介于东经117°31′—119°19′,北纬38°55′—40°28′之…
    2023-06-23 阅读(25)