web3js连接geth

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

注意: geth --datadir data --networkid 1101 --rpc --unlock 0 --password /Users/zhangyunlong/ethereum/passwdfile console用这个启动的话就直接解锁了账户0 passwdfile里面放账户的密码
web3js连接geth_第3张图片
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 部署合约
web3js连接geth_第4张图片
AC9B1C71-6E10-4FCB-AFDD-2E13BD08052F.png
geth控制台出现下边这个就是部署完成。address是智能合约的地址。
6E537233-8101-4128-A39A-F3F0DA338F67.png
##五、挖矿因为部署合约相当于向节点发送一笔交易,这个交易的目的是部署合约,但是这次交易只有在包含进区块之后才被执行,因此需要挖矿。##编写一个调用智能合约的js文件demo2.js
web3js连接geth_第5张图片
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好友,我佛慈悲,对我的问题的解答。希望你能很顺利~~

你可能感兴趣的:(web3js连接geth)