没搞过web程序,花了几天研究一下,总算是搞懂了网页与以太坊节点的交互流程。
网页与智能合约交互,需要使用web3.js,它实现了通用JSON PRC规范,通过JSON RPC协议与以太坊节点进行交互。除了js以外,以太坊还提供了Java、Python等语言的API,对于没有提供API的语言,只能自己直接使用JSON RPC来与以太坊进行交互了,关于以太坊的JSON RPC协议,请戳这里。
我们还是以之前的投票合约为例,来介绍一下网页交互。
首先,我们需要建立一个以太坊节点
geth --datadir testNet --dev --rpc --rpcaddr 0.0.0.0 --rpccorsdomain "*" console --dev.period 1 2>>test.log
和之前的命令相比,多了几项
- –rpcaddr 0.0.0.0 该选项是指定监听IP
- –rpccorsdomain “*” 这是浏览器强制要求选项,用来指定可以访问的IP和端口,“*”代表无访问限制
- –dev.period 1 自动挖矿间隔,这里是间隔一秒
然后回到合约工程目录进行编译和部署
truffle compile && truffle deplo
接下来我们要准备一个html,简单一点,两个文本框用来输入人名和显示结果,两个按钮用来投票和查询,布局就不加了。
<!DOCTYPE html>
<html>
<he