初识 DAO
DAO(decentralized autonomous organization) 的出现,允许任何在网络中的协作关系,以协议和条款的形式而存在,决策随着组织内共识而被触发自动执行。
和传统的中心化组织不同,DAO 具有更加广阔的应用场景和领域,也更加 透明、公平和去中心化,更强调群体的权益和决策权。 这里,没有使用完全去中心化,是因为即使在区块链的网络中,组织内的权力也容易产生集中,组织中的个体有限(远不及区块链中节点的个数),且个体所拥有的权益通常是不一样的(通常,区块链上验证节点的验证权重都是一样的)。
Solana - PoH 共识机制
正如比特币创世区块中,中本聪留下了当天《泰晤士报》的头版头条文章——The Times 03/Jan/2009 Chancellor on brink of second bailout for banks。这证明了创世区块是在 2009 年 1月 3 日当天或者之后被矿工 mint。后续所有的比特币交易,也发生在这个时间节点之后。
那么,如果后续所有的交易(或者说事件),都是顺序的,并且加盖了 “时间戳” 的,事实上这就是一个基于时间的历史事件序列。我们要证明某个交易事件在这个序列中,只要从这个历史序列中去求证即可。
和许多加密应用使用的基础技术一样,这里也将使用 hash 函数将这个序列串联起来。
EVM-存储模型概述
Lazy minting
Wyvern 订单匹配协议
本文讨论 OpenSea 中使用的 Wyvern 协议 的订单匹配过程,该过程主要是用户和 Wyvern Exchange Contract 的交互。
匹配过程围绕 买/卖双方的订单 展开。卖方创建销售订单,以固定价格或者竞拍的方式,将 NFT 挂出去;买方创建购买订单,并将卖方创建的销售订单一起,发给交换合约 Wyvern Exchange Contract。交换合约将对订单校验,校验通过后,完成两个转移:
- 支付费用转移;
- NFT 产品转移。
Wyvern 代理注册协议
Solidity-引用类型
所谓引用类型,实际上是提供了一个指向内容的指针赋值给引用类型的变量。这么做的原因,在于其数据内容本身就是复合类型的,不像内置的基础类型,是可以直接表达出来的。
对于引用类型的变量,在进行参数传递或者变量赋值的时候,会存在这样一个问题:传递过去的到底是这个值的拷贝还是这个值的引用。其造成的影响就是,修改传递过去的内容是否会对原内容产生影响。
因此,本节讨论的主题就是:引用类型有哪些?影响其深拷贝的因素有哪些?删除时需要注意什么。
IPFS 垃圾回收和持久化存储
IPFS 节点默认将其 存储的数据 当作一种缓存。这就意味着它其实并不保证数据的持久化。资源总是有限的,是需要维护的,在条件具备的情况下,它会进行垃圾回收。
但同时,有些数据我们是不希望按照 gc 规则回收的,这是就需要将这些数据 pin
在节点上。