Registry-Builder:一个以太坊的模块化注册表库

令牌管理注册表(TCR)允许令牌持有者共同管理列表中接受或拒绝的内容。 如今,AdChain和FOAM等部署在以太坊上的TCR使用PLCR投票来协调代币持有者的决策。 其他决策机制也可以用于TCR,例如匿名投票,二次投票或futurchy。 我们在K层的团队实施了注册表生成器库,该库提供了智能合约,可以对其进行组合和扩展,以创建具有任何类型决策机制的新型注册表和TCR。 尽管该库还提供了创建通用注册表的实用程序,但我们将重点关注更流行的TCR概念。

创建该库的目标是双重的。 首先,创建围绕模块化和可组合性设计的可访问的开源TCR智能合约。 第二,协调社区开发新的TCR功能的努力。 如果有一个地方提供了一组模块化功能,您可以将它们混合使用以创建自定义注册表怎么办? 理想情况下,当团队利用此库并编​​写新功能或挑战机制的程序时,他们还可以将功能回馈给库,以供社区其他成员进行集成。

到目前为止,我们已经通过两种方式实现了模块化:

首先,受OpenZeppelin的启发,将单个功能分组为较小的智能合约,然后可以对其进行扩展。 例如,StakedRegistry合同充当一个简单的注册表,允许在项目上放样。 然后,我们的TokenCuratedRegistry合同将StakedRegistry扩展为包括此抵押功能。

其次,质询机制与注册表分离。 我们为挑战定义了两个接口:IChallenge和IChallengeFactory。 解决挑战的所有逻辑将存在于实现这些接口的单独合同中。 TokenCuratedRegistry使用此模式来允许与任何类型的挑战集成。

而且,该库是作为ZeppelinOS EVM软件包构建的。 这样,您可以部署一个代理合同,该代理合同指向Mainnet,kovan,ropsten或rinkeby上已部署的软件包,从而降低了天然气部署成本。 您还可以使用ZeppelinOS将软件包的新版本升级为新版本。

在不久的将来,我们期待以多种方式对该库进行改进。 我们希望采用一种方法来使某些TCR参数可升级(即最小赌注,挑战持续时间)。 我们还在考虑新的挑战性实现方式,例如futurchy和基于声誉的投票。

我们希望看到您的贡献。 如果您有兴趣参与,请随时在注册表生成器存储库中创建请求请求或问题!