基于Libra的开发

我在ConsenSys学院里工作,创造与此类似的教育内容。我教那些开发人员和非开发人员如何使用以太坊的区块链。如果您对这篇基于Libra的内容感兴趣并且想要学习更多的关于区块链的知识,强烈建议您注册Developer Program On-Demand. 尽管很难在Libra的网站上找到Facebook的名字,但在长期计划上是其为了整合即将推出的Calibra 钱包,所以,整场游戏的计策可能会更有意义。

目前,Libra的意图似乎是成为全球化的货币,可能是针对那些很少接触银行的人,或者是针对Facebook的全球公民。 通过与主要的“旧金融”企业(例如Mastercard,Paypal,Stripe和Visa)建立合作关系,很难知道Libra将是加密货币一直需要的注资,还是众所周知加密货币的终结。 我们现在暂时不知道,但是在这篇文章中,我们快速浏览了该项目的入门指南以及我们可以完成的工作。该项目还处于初期阶段,我们进行了快速测试,因此会有一些细节设定的缺失。 我们遵循在macOS中的文档设定说明,该说明解决了所有的问题,并且下载了本地系统中缺失的所有依赖项。 我们注意到Libra正在使用rocksdb进行存储,这并不奇怪,因为它是一个受人欢迎的选项,也是由Facebook所创建。还有其它的依赖项,主要用于加密和存储,您可以在各种货物中看到完整的列表。存储库里的toml文件。这也表明大多数Libra是由Rust编写而成。有趣的是,我们注意到Libra使用Rust比特币哈希项目进行哈希处理,并加上了少数奇偶校验实验室模块。 建立并连接 设置后,您可以构建CLI客户端并连接到testnet。 这会花费一些时间,并且会占用您合理数量的计算机资源,但又可以顺利的完成。

在构建过程结束时,本地计算机将连接到验证程序节点,并为您提供该节点的接口。接下来,我们尝试创建帐户,运行效果很好。 其中有三个主要功能:帐户,查询,转帐; 所有的这些都是相对不言自明的。 在本教程的这一步中,我们创建两个帐户,每个帐户都有自己的索引和十六进制地址。 您可以使用索引值而不是其他CLI命令中的地址来引用要与之交互的帐户。 添加硬币 接下来,我们使用历史悠久的faucet来添加Libra。我们注意到testnet faucet每分钟最多只有5个请求的限制,这对于现实的付款方式是不现实的,希望这些都仅仅是testnet速率的限制。此时,我们还注意到,使用query account_state 0命令返回了几个有趣的字段值,包括区块链版本值,“序列号”(有点像nonce)。

在我们尚未将帐户值推送到区块链之前,该帐户还具有状态。 这与以太坊或比特币不同,这意味着无论是账户生成,还是必须有一个事件对ping testnet进行ping操作,或者如果它是一个有效的帐号,则Libra会将其余额返还为“ none”,但会验证其是否为兼容地址。

更新1:阅读技术白皮书后发现: “当从现有帐户发送的交易调用create_account(a)Move [例如:Libra的区块链VM语言]指令时,将在分类帐状态下创建新帐户。这通常在交易尝试将Libra发送至地址为的帐户时发生 一个尚未创建的”。

更新2:区块链版本似乎更类似于区块编号。 从白皮书中: “ Libra区块链中的所有数据都存储在一个版本数据库中。版本号是一个无符号的64位整数,与系统已执行的交易次数相对应。” 提交交易。接下来,我们尝试在帐户之间发送事务。此步骤重新引入上面提到的序列值,因为您可以查询序列来了解到目前为止每个帐户上的事务数量。一旦提交了事务,就可以查询状态,以确定确认器节点何时接受了它。您还可以使用“阻塞传输“来仅在验证器节点验证了事务之后才返回到客户端。 总结 Libra最有趣的地方是我们看到了另一群或许不那么精通密码世界的工程师如何建造三个区块链。这并不是说他们的选择是好是坏,但这很有趣,谁知道Facebook(不好意思,Libra)使用这种新的加密货币的目的是什么,但与此同时,如果您正在从事一个Defi项目,它可能是一个精心设计的。

 

You need to add a widget, row, or prebuilt layout before you'll see anything here. 🙂

 

Leave a Reply

Your email address will not be published.