web3.0就像六月的天气一样,是比较热的一个概念。简单一句话概括:Web3.0是一个去中心化的网络,将权力和数据集中在用户手中,而不是某单一公司机构手中。结合当前的区块链技术,相比于传统的网络,区块链具有两大核心特点:一是数据难以篡改、二是去中心化。基于这两个特点,区块链所记录的信息更加真实可靠,可以帮助解决人们互不信任的问题。
2008年由中本聪第一次提出了区块链的概念 ,在随后的几年中,区块链成为比特币的核心组成部分:作为所有交易的公共账簿。
2023年3月30日,全国医保电子票据区块链应用启动仪式在浙江省杭州市举行。医保电子票据区块链应用是全国统一医保信息平台建设的重要组成部分。医保电子票据和区块链技术全领域、全流程应用将为医疗费用零星报销业务操作规范化、标准化和智能化提供强大的技术支撑,实现即时生成、传送、储存和报销全程“上链盖戳”。
“Web1.0”,是个人电脑时代的互联网,用户利用web浏览器通过门户网站,单向获取内容,主要进行浏览、搜索等操作。用户只是被动接受内容,没有互动。
“Web2.0”对应的是移动互联网,用户不再只是内容接收方,可以在线阅读、点评、制造内容,成为内容的提供方,还可以与其他用户进行交流沟通。提供服务的网络平台成为中心和主导,聚集起海量网络数据。
Web3.0会更加注重帮助用户实现其劳动价值,在Web3.0中,网民既是信息的生产者,也是信息的拥有者,共同参与到信息产品的开发与维护过程中,最后共同分享所获得的利润。
那么web3.0时代,我们前端开发者能够做些什么呢?简而言之,web3.0开发人员创建去中心化的全栈应用程序,这些应用程序存在于区块链上并与之交互。对于我们的前端开发,我们想要开发驻留在区块链上并与区块链交互的去中心化应用程序,我们必须使用web3.js和Ethers.js库。
为了让你的Ðapp运行上以太坊,一种选择是使用web3.js library提供的web3。
对象。底层实现上,它通过RPC 调用与本地节点通信。web3.js可以与任何暴露了RPC接口的以太坊节点连接。
Web3.js 是 Ethereum 兼容的 JavaScript API,实现通用 JSON RPC 规范。
入门
添加web3
首先你需要将web3引入到你的工程中,通过如下步骤:
- npm:
npm install web3
- bower:
bower install web3
- metor:
meteor add ethereum:web3
- vanilla:
dist./web3.min.js
然后你需要创建一个web3的实例,设置一个provider
。为了保证你不会覆盖一个已有的provider
,比如使用Mist时有内置,需要先检查是否web3
实例已存在。
if (typeof web3 !== 'undefined') {
web3 = new Web3(web3.currentProvider);
} else {
// set the provider you want from Web3.providers
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}
成功引入后,你现在可以使用web3
的相关API了。
ethers.js介绍
ethers.js库旨在为以太坊区块链及其生态系统提供一个小而完整的 JavaScript API 库,它最初是与 ethers.io 一起使用,现在已经扩展为更通用的库。
包含功能
- 将私钥保存在客户端,安全 可信赖
- 可支持导入和导出的 JSON钱包文件 (Geth, Parity and crowdsale)
- 导入和导出 BIP39 助记词 (需备份的12个词或短语) 和 HD(分层确定性)钱包(英语,意大利语,日语,韩语,简体中文,繁体中文; 即将推出更多语言)
- 从任何合约ABI创建 JavaScript 元类对象,包括 ABIv2 和 可读的ABI
- 支持通过 JSON-RPC, INFURA, Etherscan, Alchemy, Cloudflare 或 MetaMask连接到以太坊节点
- ENS 名称 是"一等公民"; 它们可以在任何可以使用以太坊地址的地方使用
- 库非常小 (压缩~88kb; 未压缩~284kb)
- 功能完整 满足所有的以太坊相关需求
- 文档全面:中文文档 及英文文档
- 维护和新增的大量测试用例
- 已经支持 TypeScript ,附带定义文件和完整的TypeScript源文件
- 宽松的 MIT 协议许可 (包括所有依赖); 完全开源可以随意使用