web3js连接geth

一、先找一个简单的智能合约
3554600C-0EFC-47B3-84F2-284A83A12340.png
##二、写一个部署智能合约的js文件 demo1.js
5759ADDC-2197-4330-BD3E-235752C38DFF.png
##三、在geth控制台里面定义和编译合约并且解锁账户

注意: geth --datadir data --networkid 1101 --rpc --unlock 0 --password /Users/zhangyunlong/ethereum/passwdfile console用这个启动的话就直接解锁了账户0 passwdfile里面放账户的密码
BF33A30D-7A7C-4881-AF1E-31B2E76178F5.png

然后解锁账户0,看看账户0里面有没有余额,没有余额就挖矿source='contract SimpleStorage{uint storedData;function set(uint x){storedData=x;}function get() constant returns(uint retVal){return storedData;}}'"contract SimpleStorage{uint storedData;function set(uint x){storedData=x;}function get() constant returns(uint retVal){return storedData;}}"compiled=web3.eth.compile.solidity(source);##四、编译demo.js 部署合约
AC9B1C71-6E10-4FCB-AFDD-2E13BD08052F.png
geth控制台出现下边这个就是部署完成。address是智能合约的地址。
6E537233-8101-4128-A39A-F3F0DA338F67.png
##五、挖矿因为部署合约相当于向节点发送一笔交易,这个交易的目的是部署合约,但是这次交易只有在包含进区块之后才被执行,因此需要挖矿。##编写一个调用智能合约的js文件demo2.js
98D8B835-546E-46AD-9A1A-E06A20851E6F.png

这里var MyContract = web3.eth.contrac括号里面是abi,粘贴在线编译器右手边的interface里面的东西就行var myContractInstance = MyContract.at括号里面是合约的地址myContractInstance.set(12,{from: web3.eth.accounts[0]});这个函数的调用一定要有from后面的东西。意思就是从这个地址发送交易。##挖矿,然后运行demo2.js会出现结果ps:如果你有多个节点,那么只需要一个节点一直挖矿就可以了,不用像上边那样一直挖矿 感谢qq好友,我佛慈悲,对我的问题的解答。希望你能很顺利~~

推荐阅读更多精彩内容

  • 本文是对以太坊文档 Ethereum Frontier Guide 和 Ethereum Homestead 的整...
    趁风卷阅读 8,010评论 0 15
  • 一、区块链 1. 分布式去中心化 比特币设计的初衷就是要避免依赖中心化的机构,没有发行机构,也不可能操纵发行数量。...
    Tenny呢阅读 29,569评论 5 34
  • 有缘认识你 一串阿拉伯数据 内心像喝了草药时 忐忑,惊讶 定下目标,乘风驾云 2018年突破365000字 在你身...
    煮透人生嚼碎命运赵紫龙阅读 54评论 1 1
  • Ecma 国际公布了第八版的 ECMAScript 语言规范 ECMAScript 2017(或 ES8)。 EC...
    love颜文字阅读 306评论 0 0
  • 这天是17年1月30日 从绵阳看望亲人,早早出发坐车到遂宁,可是最早那班刚好错过了!坐到二班车,回到遂宁刚好12点...
    思思培阅读 95评论 0 0