web3+区块链 入门及技术指南
web3基本介绍
web3.0是在web2.0的基础上发展起来的能够更好地体现网民的劳动价值,并且能够实现价值均衡分配的一种互联网方式。web3.0到来的三个前提:1、博客技术为代表,围绕网民互动及个性体验的互联网应用技术的完善和发展。2、虚拟货币的普及和普遍,以及虚拟货币的兑换成为现实。3、大家对网络财富的认同,以及网络财务安全的解决方案。
伴随着IPFS、Filecoin、区块链、云计算等新技术的发展,互联网需要解决去中心化、身份信任、隐私保护、公平公开等问题,特别是区块链技术,共识机制、智能合约、分布式记账等技术加持,区块链技术逐渐广泛应用,催生了web3.0的进一步发展。
入门
Web3.js API文档:https://web3.tryblockchain.org
http://cw.hubwiz.com/card/c/web3.js/1/2/1/
web3.js开发环境安装
安装环境的几个组件,如下
testrpc: 在本地使用内存模拟的一个以太坊环境;
Truffle :以太坊开发框架 Ganache CLI:是在本地使用内存模拟的一个以太坊环境,其基于Node.js,以前叫TestRPC在开发过程中使用。
安装nodejs,参考
npm 安装web3
$ npm install web3 --save
检测是否安装成功
$ node
>require("web3")
显示如下:
说明web3.js已经安装成功。
安装testrpc(在本地使用内存模拟的一个以太坊环境)
>npm install ethereumjs-testrpc -g
安装成功后,启动testrpc 区块链节点
>testrpc
安装truffle(编译、部署智能合约的工具)
$ npm install -g truffle
建立项目目录pet-shop-tutorial,构建truffle项目
$ truffle unbox pet-shop
编写智能合约
在 contracts/目录下新建文件Adoption.sol。
pragma solidity >=0.4.22 <0.8.0; contract Adoption { address[16] public adopters; // Adopting a pet function adopt(uint petId) public returns (uint) { require(petId >= 0 && petId <= 15); adopters[petId] = msg.sender; return petId; } // Retrieving the adopters function getAdopters() public view returns (address[16] memory) { return adopters; } }
编译智能合约
$ truffle compile
安装ganache-cli
$ npm install -g ganache-cli
部署智能合约
truffle-config.js所在目录执行
$ truffle dev
也可以让启动在后台运行:$ truffle dev &
启动一条区块链,默认会生成10个账户,每个账户里有100个以太坊。默认监听localhost:8545)
在/migrations目录下新建一个文件2_deploy_contracts.js,接下来就是测试区块链的正确性,以及与其交互的工作了。
测试合约
$ truffle test
在启动区块链localhost:8545的环境时,执行部署合约如下
$ truffle(develop)> truffle migrate
说明我们已经成功将智能合约部署到了测试用的区块链中。
至此,我们已经搭建好区块链、账号、合约等环境,就可以进行区块链的相关开发了。