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

说明我们已经成功将智能合约部署到了测试用的区块链中。

至此,我们已经搭建好区块链、账号、合约等环境,就可以进行区块链的相关开发了。

经验分享 程序员 微信小程序 职场和发展