作者: Truebit
编译: ChainCatcher
欢迎来到系列;已验证,以书面和视频形式展示功能和访谈,重点介绍在 Truebit 上开发的贡献者和项目。按照协议的精神,这些会议邀请了开发人员、研究人员和与项目相关的人员,他们的严谨工作推动了 Truebit 生态系统和社区的发展。
我们很高兴今天介绍我们的第一位客人 Carsten Munk,他是一位多产的开发人员,在主网启动后对我们不断壮大的社区产生了强大的影响。 Carsten 深入研究 Truebit 代码,是一位鼓舞人心的领导者,帮助开发人员开始了解该协议。我们想借此机会邀请 Carsten 分享他的经验和发现,并在美国东部标准时间 2021 年 6 月 24 日星期四中午 12 点通过跟进 Reddit AMA 回答问题。希望在那里见到你!
我是 Zippie 的首席技术官,是一名计算机科学家,多年来一直涉足以太坊领域。多年来一直困扰我的主要挫折之一是缺乏使用以太坊区块链进行任何类型的大规模计算的能力——在这种情况下,即使是简单直接的区块链用例,即使在小规模上也会变得不合理地昂贵。
我们在 Zippie 的重点一直是撒哈拉以南非洲等新兴市场,那里的人们已经通过采用移动货币(例如 M-PESA)非常了解数字货币——以及如何将 Web3.0 大规模引入这些市场, 主要在移动浏览器上。我们的长期目标很简单——如果我们不让 Web3.0 技术为大众所接受、使用和理解,我们就不会产生技术和最终用户应得的影响。
当你开始通过协议中活跃的 17+ 百万人的视角来看待你的以太坊使用情况时,它会改变你的观点。当我开始养成将潜在解决方案的每一个 gas 价格和 gas 支出相乘以模拟将真实用户群引入我们的解决方案的经济性时,真正的绝望开始了。
在检查了扩展空间中的其他解决方案后,这种可扩展性的绝望促使我选择了 Truebit。
与许多其他可扩展性解决方案相比,Truebit 是一种\"更简单\"的心智模型。如果结果不一致,求解器和验证器基本上会重复计算,直到确定计算范围的选定中点步骤并找到计算的确切分歧点。从那里,以太坊区块链确定谁进行了正确的计算。
许多其他解决方案的可表达性受到限制,例如,专门适用于完成代币交易或有限的智能合约行为;并使用相当先进的证明结构。
我们对 Truebit 的使用还处于早期阶段,但现在我们正在将其用作一些原型中的一个元素。
我们的计划是在我们即将推出的 Zippie ID 产品中更广泛地使用它,该产品处理大众的去中心化身份。如果您想了解更多信息,可以加入 Zippie 的 Telegram。
我的贡献主要是构建尚未移植到 Truebit 开源工具链的部分,例如 BLS12–381 签名验证库,或 JavaScript 解释器,例如 QuickJS- https://github.com/zippiehq/quickjs-真比特
我与 Truebit 相关的工作主要集中在简化团队其他成员的开发,消除他们大规模使用区块链的障碍。
最重要的是要了解 Truebit 是一个构建块。它本身并不能解决交易成本,它对汇总甚至令牌交易一无所知,但你可以进行计算,或者以可靠和准确的方式验证计算结果这一事实,使 Web3.0 应用程序能够构建- 为他们的目的进行链扩展要容易得多。
Truebit 允许显着扩展以太坊作为结果\"判断\"或验证证明的能力——轻松从 IPFS 获取数据并以比完全在链上和 EVM 内完成计算更便宜的价格进行计算。
作为使用 Truebit 的新开发人员,理解当前版本中的 Truebit 是作为\"早期访问\"主网推出的并且文档中存在一些空白也很好。
值得庆幸的是,Jason 和 Truebit 团队的其他成员对目前出现的任何问题都非常敏感。编写更好的文档只是时间问题。
从 JavaScript 和 Solidity 跳到 WASM 有点飞跃。许多 Web 开发人员不知道如何编写 C/C++/Rust 代码或开始考虑利用 Truebit,更不用说处理 Emscripten 等工具链了。开发人员和用户不需要与他们当前的编码方式跳得太远,这在某种程度上可能是其他解决方案的好处。
部分挑战在于,要熟悉 Emscripten 及其怪癖并不容易,因为它们的部署目标是 Web 浏览器内的 WASM。我一直在研究基于原型 WASI 的环境,它可以让人们更容易理解 Truebit 环境的局限性,并使其在处理更复杂的任务时更加连贯。你可以在这里看到它:https://github.com/zippiehq/wasi-truebit
我们还一直在研究在 Truebit 中使用 TinyGo 和 JavaScript 与 QuickJS 运行 Go,以此作为减少开发人员飞跃的一种方式。
也就是说,有很多关于如何在 Linux 上处理简单编译的文档,因此如果您对要卸载的内容有明确的目标,它就不是主要障碍。
要正确"获取"Truebit,您需要将其视为一种以异步方式基于特定输入获取计算结果(输出)的方法。这不同于您之前构建许多区块链合约的同步方式,您可以在其中直接调用另一个智能合约并在交易执行期间获得响应 - 以同步方式与其他智能合约对话。
开始使用 Rust/C/C++ 对您的链下计算进行建模,它从文件中获取数据并将输出写入特定文件。该模型本质上就是您的 Truebit 任务描述。然后了解输入和输出如何完成任务——这是你的链上智能合约和需要实施的软件,它与 Truebit 文件系统对话。
然后在 Goerli 测试网上为 Truebit 开发,然后在主网上线以节省您的 Ether。
最后查看Truebit官方Reddit频道中的题目。我在美国东部时间 6 月 24 日星期四中午 12:00 主持了一场 AMA,以继续由这篇文章引发的对话。如果您未能加入我们,您可以在此处查看 AMA 答案!