Cover photo

CLRFund Round 8 Final Splash

CLRFund Round 8 Final Splash
CLRFund Round 8 Final Splash

TL;DR - CLRFund 第 8 轮绝对是过山车。我们打破了记录,不断地达到我们的 RPC 节点的速率限制,烧毁了一些 CPU,取得了令人难以置信的效率提升,未能证明链上,创造了一些很棒的 NFT,得到了 16,000 美元的合同,收回了其余的,学到了吨,并最终为以太坊的一些最佳公共产品项目分配了大量资金。

全面审查

将这一轮称为过山车几乎是轻描淡写的。这一轮经历了很多事情,我们几乎不从哪里开始知道。

开始...

1,183 1,114 以领先优势超越在 Tornado 之前,我们进入了第 1 轮现金记录。

在第 8 个小时内,clr 无法应用程序,因为之后我们几乎启动了 RPC 名家疯狂的孩子的贡献,并立即开始使用资金。幸运的是,来自口袋。 network 的位置让我们可以访问一些容量,因此 xai 的 RPC 节点应该应用程序从那里顺利进行。

post image

我们在第一天就打破了之前的贡献者数量记录,以 6,137 名的贡献者、投了 5 万个指标、贡献了 33,562.00 wxDai、分配了 33,594.45 wxDai 的池匹配结束了这一点。几乎每个人的新记录。

post image

然而,就在这一轮结束后,我们遇到了一个喜剧问题。

生成证明

我们开始第一次尝试在一台普通的消费类笔记本电脑、台式机和裸机服务器上并行生成证明(为冗余而设计)。出于某种原因,服务器不断给我们一个核心转储错误。经过无数次的新发行版安装和几天的集体努力,我们意识到 Iden3 的 ZKP 库使用了一些英特尔汇编语言,而服务器使用英特尔芯片,它落后了几代,显然没有库使用的完整指令集。

Generating proofs of message processing...
Progress: 1 / 6216; batch index: 49720
Illegal instruction (core dumped)

Nevertheless, it was running fine on the laptop and desktop, with one little caveat. After letting it run for a few hours, we estimated it was going to take more than 110 days to generate the proofs.

The first bottleneck we identified was that the MACI scripts make use of a single processor thread. We couldn’t change this for this round, but we could find the absolute fastest single-thread VPS we could get our hands on (an Amazon Z1d, just in case you were wondering). This gave us a modest improvement, but we were still over 100 days.

Generating proofs of message processing...
[2021-11-01 16:43:58] 
[2021-11-01 16:43:58] Progress: 1 / 6216; batch index: 49720
[2021-11-01 17:08:54] Up to loadJson 0.01805599999999999913
[2021-11-01 17:08:54] Items : 21
[2021-11-01 17:08:54] Total 0.40599899999999999878
[2021-11-01 17:08:56] Loading circuit from /mnt/nvme1n1p1/maci/circuits/params/batchUst32.r1cs...
[2021-11-01 17:08:58] Proving...
[2021-11-01 17:09:16] Saved /mnt/nvme1n1p1/maci/circuits/params/1635786534498.proof.json and /mnt/nvme1n1p1/maci/circuits/params/1635786534498.publicSignals.json
[2021-11-01 17:09:17] Proof is correct
[2021-11-01 17:09:17] 
[2021-11-01 17:09:17] Progress: 2 / 6216; batch index: 49712

~25 minutes per batch~57.6 batches per day~107.92 days to generate proofs for this round

Then Wei Jie came to our rescue with a series of on-the-fly incremental improvements to MACI’s proving scripts. First reducing the proving time to about thirty days; still long, but much more manageable. And then later improving again down to about three days.

Three days later, proofs in-hand (and backed up multiple times) we were ready to prove on chain. But the rollercoaster doesn’t stop there.

(Not) Proving On-Chain

After generating the proofs, the next step is to prove them on-chain. The CLRFund smart contracts then use those proofs to validate how much each recipient should receive from the round.

With the proofs finally generated, we were expecting smooth sailing from here on out. Then this happened.

Submitting proofs of message processing...
Progress: 1/6216
(node:13838) UnhandledPromiseRejectionWarning: Error: transaction failed

可以查看交易返回ERROR_INVALID_BATCH_UST_PROOF = "E02"

几天的非常努力的集体努力,导致我们由于调试会话,然后发现工具,部署了我们的工具,我的 MAC 的部署出现错误。

MACI 存储库这些包含 Poseidon.sol,PoseidonT3 和 Poseidon 实现 T6,都是。Poseidon 库是 Circom 库的知识,这是设置库用于零证明的工具。

post image

当使用它们的 compileSol 脚本编译 MACI 时,这两个空库被巧妙地替换为它们的真实对应物。

有一段时间,我们使用了子工具,我们在让任何人启动他们自己的 CLRFund 实例的前端,调轮部署了 Poseidon 库的。

每次,消息贡献者投票时,都会向默克尔树添加一个新消息,并更新消息根。

post image

而在这个例子中,由于我们的海神库是的,更新了我们的工作状态根本无法正常工作,整个工作状态保持不变。

状态与这个结果中证明在这个根之间的不匹配意味着我们无法证明在链上。

这是什么中文?

第8轮取消

在用尽所有其他选项后,我们最终不得不取消第 8 轮。

可以声明对您的所有作者的贡献,562.0 wxDai(33 在此声明您的)。

大约有3个我们人在这个结果将轮毂中的一个安装。

这在第 8 期中所希望的结果,但不是我们肯定验证了我们的选择,因为我们有几种全新的脚本技术组合轮。设施我们学到了很多东西,它改进了设备基础、MACI 合同、证明、我们的部署流程、CLRF基金,扩展未来轮次使用自发生在。

很多人也进行了一次捐赠的团队贡献,进行了我们的下周将完全采用的应用程序,并在本次中继续使用以太坊。大的计划。

很快就会有更多信息。

泳池派对 NFT

跟前轮几领一样,在第8轮中为项目贡献AP的所有人都会收到一份。现在就认你的!

我们还一直在与ps共同执行的工作人员主题供应商的秘密任务,为我们的共同贡献者创造以物品池Pro为的POAP和NFT。

可以查询到你池面的地址,并且可以通过这个沙丘查看符合所有条件的地址。

通过以求NFT 将抽奖的每个人资助给梦想共同的匹配者共同贡献。票证列表。

post image

为了选择选择者输入,我们使用drand.love1,444,000在推特上提前发布JS)的每一个数字作为前(最左)函数的下面几张。

Math.floor((drand_randomness / 0xffff) * 8491) + 1

是的前两字节1,444,0000x8251

post image

所以,金池面去... *鼓卷...票号*4323。恭喜bykur.eth。

最后,4 名贡献者各自获得了一个特殊的池前容量 NFT,其灵感来自以太坊的一些精神动物。

  1. 黄金独角兽- 0xigor.eth- 10k xwDai

  2. 这只虾- bitpush.eth- 20 wxDai

  3. 总督- 0xd63d28282eeeace4d4d2c67ebb798f3a2ca782b1- 200 wxDai

  4. 摩洛克- 0xa6a0111f3401b9ede35aca7734436e26549a9a55- 166 wxDai

非常感谢所有参与并为这一轮贡献的人。

迫不及待地想在几周内进入第9轮。

加入我们!

想建立或您为未来的 CLRFFund 轮次在Twitter 上贡献我们吗?可以在论坛、DiscordGitHub、我们找到的论坛Telegram上。

订阅 clr.fund

将帖子直接发送给您的最新消息