开发以太坊区块链应用程序,包含两部分内容:
智能合约开发 – 使用solidity语言编写代码,部署到区块链。
网站或客户端开发 – 与区块链中的智能合约进行交互,读写数据。
web3.js 是一组用来和本地或远程以太坊节点进行交互的 Javascript 库,它可以使用 HTTP 或 IPC 协议建立与以太坊节点旳连接。
所以我们在开发网站或客户端软件时,就需要用到 web3.js 库。
1. web3.js 用途
例如:web3.js 可以执行下面的任务:
以太币转账
读写智能合约中的数据
创建智能合约
2. 谁适合阅读本教程?
阅读本教程,需要你有 web 前端开发背景,对 Javascript 语法和 Ajax 运行机制有所了解。
如果你对 Ajax 与 web 服务器进行通信的机制很熟悉,那么使用 web3.js 完全没有问题。web3.js 与 Ajax 类似,可以使用 Web3.js 读写以太坊区块链。
3. web3.js 工作流程
区块链网络是一个点对点的对等网络,网络由各个节点相互连接构成,智能合约的代码与数据存储在区块链中。使用 web3.js 可以向区块链网络中某个以太坊节点发出请求,与区块链网络进行交互。
此过程如下图所示:
web3.js 使用 JSON RPC 与 Ethereum 区块链通信(JSON RPC:JSON 远程调用),对区块链网络进行数据读写。这有点像使用 jQuery ajax 库来读写 Web 服务器上的数据。