前言
背景
因为公司研发新项目需要,up自己也在尝试入门web3, 过程中也会请教其他大牛, 谨以此文和大家一起学习进步
风格
考虑到work life balance, up会尽量精简,框架上勾勒重点,技术实现上给出数据流,目标是输出各种架构实现
分层学习计划
基础:知道是什么,包含什么,可以用来干什么
提高:知道基本的原理,了解简单的优缺点,以及简单的扩容实现等
精通:了解详细的数据流,具体的优缺点原因
web3是什么
基于区块链技术,组成的新一代网络交互的生态
可以理解为类似于http服务的存在
web3能做什么
数据自治:替代原有中心化服务商,真正做到自己的数据自己管理,数据永不丢失
web3特点
和web2一样有各种app(web3叫做dapp), 所有的交易通过去中心化节点完成
数据不可篡改
数据自治
web演变路径
web1.0, 静态网页,如黄页
web2.0, 中心化服务,如某信某音
web3.0, 去中心化服务,如去中心化身份认证,数据存取,数字合约等
web3构成组件
区块链(chain)
web3里的基础服务组件,也是核心服务组件,支撑了整个web3生态
通过合理的共识和激励,最终得到一个去中心化的,不可篡改的点对点网络
以以太坊为代表的新一代区块链技术做了很多意义重大的优化,让区块链技术能更好服务与上层业务。(如可编程的世界状态,数据存取规范,共识方式优化等等)
智能合约(contract)
运行在每个区块链节点的虚拟机中,可以理解为区块链2.0的核心技术。
无法脱离区块链存在,但是web3的繁荣很大程度上也是因为智能合约的出现,基于合约,可以实现did等各种去中心化功能,安全的同时也能保证隐私性
合约本身也有自己的数据存储(slot方式),研究智能合约的数据分布,动态更新,gas费用节省等是一个比较重要的方式
去中心化存储(storage)
独立存在,区块链本身很难存储大量的数据,因此通过去中心化存储来存储图片,文件等核心数据
一般在智能合约中被使用
web3入门路径
web3一样也有自己的分层网络设计模型,最上层(layer2)是dapp等应用,中间(layer1)是能力支撑层,最下层(layer0)是区块链服务
1 layer2入手:门槛较低
通过自己上手创建一个dapp, 研究web3的使用。进而研究它和区块链的关系,并如何实现这些特性的
比如感受一个dapp和区块链的增删改查,合约的增删改查,gas费用的获取, 设置等
核心是了解dapp,钱包等和合约交互的数据流,以及各自的实现原理,数据分布等。
2 layer0入手:门槛较高
从区块链本身入手,研究它的架构及扩展性。进而研究它是为什么会发展出layer1和layer2,并如何实现的功能
比如它的定义,性能衡量标准,监控告警标准,不可篡改等特点的实现策略,节点调度策略,发现策略,维修策略,cpu网络io磁盘的使用策略,横向扩容策略(提升整体服务容量),纵向扩容策略(提升单点服务能力)
下一章链接
区块链入门
dapp入门