1. 引言
近期,Dark Forest发布了v6, Round 5。相比于之前版本,最大的不同是将其proxy/upgrade系统基于EIP-2535-Diamonds, Multi-Facet Proxy 进行了重构。从而解决之前版本中,添加新feature容易hit contract size limit的问题。
Diamond为一种Solidity代理模式,可由一个gateway contract来proxy calls and storage to any number of other contracts。可为合约使用者提供单一的接口,并支持feature set grow into many contracts。在合约部署之后,还支持对其进行替换 或 功能扩展。
详细可参看代码:
- https://github.com/darkforest-eth/eth
[1] Dark Forest & the Diamond Standard [2] Diamonds #2535 [3] EIP-2535-Diamonds, Multi-Facet Proxy