geth连接web3笔记

1、启动geth
geth --datadir data --networkid 1101 --rpc --rpcapi "web3,eth,personal,net" --rpccorsdomain "*" console

2、在geth里面新建一个账户并且解锁
personal.newAccount('123456')
(括号里面是账户的密码)
解锁账户0
personal.unlockAccount(eth.accounts[0])

8DB3F564-E1D3-4512-B5D3-8C3116404387.png

ps:如果操作过程中又出现accounts unlock的报错,你就重新再解锁账户

3、创建合约
在deploy.js文件里面粘贴下边的代码
var Web3 = require("web3");//引入web3 var web3 = new Web3();//声明 web3.setProvider(new web3.providers.HttpProvider("http://localhost:8545"));///连接以太坊

接下来粘贴画圈的代码

4459E8F3-2744-4B7E-B962-0D77F5FEAFE7.png

然后在控制台进入deploy.js所在路径,然后输入
node deploy.js

4、合约部署
在geth控制台里面输入
miner.start()
看到

B3C501B3-AE3B-4D0E-8091-CEF9B3EDF45F.png

输入miner.stop()

5、这个时候在node deploy.js的那个控制台会出现address:。。。。。。
把address后边的数字复制下来

6、新建一个文件 test.js
输入
var Web3 = require("web3");//引入web3 var web3 = new Web3();//声明 web3.setProvider(new web3.providers.HttpProvider("http://localhost:8545"));///连接以太坊

A90F5C8F-FF3F-4E70-8B0A-6A0F764DF74A.png

上图中的第一行

FCD21085-1971-4FFF-9FD2-DEC5044D018E.png

括号里面的东西换成solidity编译器interface后边的代码

第二行mycontract。at()括号里是第五步复制的address。

7、你的合约调用
第一步 :把学生的信息存到区块链
在第二行后边加下边的代码
var userID=myContractInstance.newStu.sendTransaction(web3.eth.accounts[0],"loutong2",2012210596,"students",{from: web3.eth.accounts[0],gas:470000});
编译 node test.js
然后去geth挖矿

第二步
先把存信息的那行代码注释掉!!!!!
然后查询学生信息
console.log(myContractInstance.getStu(2012210596).toString());
2012210596是学生的学号,你和上边的学号对应就行

8、现在你就完成了向区块链存学生信息,并查询学生信息

你需要接下来完成:
1、通过node访问数据库,把数据库的信息查出来一条存在区块链一条,最终完成数据库的信息存到区块链上的一个转换
2、查询页面的编写
3、最终形成一个学生数据存到了区块链上,用户可以通过查询页面查询上边的信息的应用
吧啦吧啦 你自己再想想还要做点其他的什么

ps
提高功能:
把数据库信息转到区块链上的过程用户化。

推荐阅读更多精彩内容