web3基本介绍
互联网发展可以划分为web1.0、2.0、3.0…不同的阶段,目前还主要是2.0向3.0过渡的阶段,已经有部分应用在使用web3.0。web1.0是早期单纯通过网络浏览器浏览html网页模式向用户展示信息或广告等,用户的参与很少;web2.0则更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者。web2.0使用户在互联网上的作用越来越大。他们贡献内容,传播内容,而且提供了这些内容之间的链接关系和浏览路径,互联网进入了一个更加开放、交互性更强、有用户决定内容并参与共同 建设的可读写网络阶段。Web2.0的本质就是互动,它让网民更多地参与信息产品的创造、传播和分享,而这个过程是有价值的。web2.0的缺点是没有体现出网民劳动的价值,所以2.0很脆弱,缺乏商业价值。web2.0是脆弱的,纯粹的2.0会在商业模式上遭遇重大挑战,需要跟具体的产业结合起来才会获得巨大的商业价值和商业成功。正是因为更多的人参与到了有价值的创造劳动,那么 “要求互联网价值的的重新分配”将是一种必然趋势,因而必然催成新一代互联网的产生,这就是web3.0。
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,参考Nodejs入门及技术指南_yan_dk的专栏
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 && 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
说明我们已经成功将智能合约部署到了测试用的区块链中。
至此,我们已经搭建好区块链、账号、合约等环境,就可以进行区块链的相关开发了。