Libra & Move 区块链
Libra 区块链电子货币与 Move 语言研究
sp42a
What the web can be
展开
-
Facebook Libra 性能初探
译自:官方文档翻译 https://developers.libra.org/docs/crates/consensus。 本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。Libra 中文网同步翻译 http://www.libra-cn.top/document/info/?id=18Libra 协议的使命在于至此全球的金融基础设施。性能是满足这种需求不...原创 2019-07-22 13:09:42 · 850 阅读 · 0 评论 -
Facebook Libra 共识协议 Consensus 简介
译自:官方文档翻译 https://developers.libra.org/docs/crates/consensus。本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。概述共识协议通过多个验证器来创建逻辑模型,这个模型实质是个数据库。共识协议下被提交的交易首先会不断地复制到不同的验证器,然后执行交易,对于交易顺序和执行结果进行检查,看是否能根据事先约定好...翻译 2019-07-17 10:51:39 · 1306 阅读 · 0 评论 -
官方文档翻译《The Libra Blockchain》之执行交易(二)
译自:官方文档翻译《The Libra Blockchain》之执行交易,第三小节。本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。执行交易执行一次交易在 VM 内部按照六个步骤有序进行。执行交易与更新账本的两个动作是分开的。先尝试在一部分的序列上执行看交易是否能达成通过。由于执行过程是封闭的,因不会有外界插手所引致的副作用产生。随后如果达成协议,则将其输...翻译 2019-07-16 10:50:03 · 515 阅读 · 0 评论 -
官方文档翻译《The Libra Blockchain》之执行交易(一)
Libra 协议中,修改区块链状态的唯一方法是执行交易。本节将介绍执行一个交易所必须的条件,定义了交易的结构如何,解释了 Move 虚拟机如何执行一次交易的,还介绍了 Move 语言的关键概念。翻译 2019-07-13 10:34:24 · 675 阅读 · 0 评论 -
Facebook Libra 内存池组件(Mempool)简介
内存池 Mempool 是位于内存的缓冲区,那些等待执行的交易便保存于此。概述准入控制(AC)模块将交易发送到内存池。在共识提交之前,内存池将交易保留一段时间。添加新交易时,内存池会与系统中的其他验证器(验证程序节点)共享此交易。内存池是“共享的”,因为各个内存池之间的交易都与其他验证器共享。这有助于维护伪全局的排序(pseudoglobal ordering)。当验证器从另一个内存池接收交...翻译 2019-07-04 11:36:50 · 809 阅读 · 0 评论 -
Facebook Libra 执行组件(Execution)简介
概述Libra 区块链是一个复制的状态机。每个验证器都是一个系统的副本。从状态 S0 开始,每笔交易 Ti 更新前一个状态 Si-1 到 Si。每一个 Si 实际是一个 map,映射了账户(以 32 字节地址表示)和该账户所关联的数据。执行组件输入的交易是有序的交易,通过 Move 虚拟机计算每笔交易的输出,然后把输出结果应用到前一个状态,最后生成新的状态。执行组件使用 HotStuff 的领...翻译 2019-07-03 23:31:08 · 508 阅读 · 0 评论 -
Move: A Language With Programmable Resources:区块链如何管理数字资产
区块链如何管理数字资产区块链之抽象区块链是一个复制的状态机。系统中的复制器称为验证器。系统用户将交易事务发送给验证器。每个验证器都了解如何执行交易,内部状态机就会把当前状态转换为新的状态。交易详情都是共享的,验证器根据共识协议(Consensus protocol)来执行交易,这些验证码会集体决定状态如何以及维护和复制状态。如果验证器从相同的初始状态开始,并且验证器同意下一笔交易应该是...翻译 2019-07-02 15:24:52 · 620 阅读 · 0 评论 -
Facebook Libra 网络模块简介
网络网络组件提供了点对点与其他验证器组件之间的通讯原语。概述网络组件专门用于促进共识和共享的mempool协议。目前,它为这些消费者提供了两个主要接口:RPC,用于远程过程调用DirectSend,用于向单个接收器发送即发消息的消息。网络组件使用:用于对等寻址的 Multiaddr 方案。TCP 用于可靠的传输。用于身份验证和完整端到端加密的噪声。Yamux 用于在单个连...翻译 2019-07-01 15:20:09 · 941 阅读 · 0 评论 -
Facebook Move 语言设计目标
Libra 的使命是建立一个简单的全球货币和金融基础设施,赋惠于数十亿人。Move 语言旨在提供安全,可编程的基础。Move 本身必须能够体现 Libra 货币是在一个精确的,可理解的及可验证的规则下治理。从长远来看,Move 必须能为不同类型的资产及其业务逻辑提供一个完善的财务基础设施。为了满足这些要求,我们设计了 Move,考虑了四个关键目标:面向资源、灵活性、安全性和可验证性。面向资...翻译 2019-07-01 11:51:17 · 541 阅读 · 0 评论 -
Facebook Libra 存储(Storage)简介
存储存储模块为 Libra Blockchain 上的整个数据集提供可靠且高效的持久化存储,以及 Libra Core 内部所使用的必要数据。概观存储模块旨在实现两个主要目的:保留区块链数据,特别是验证方通过共识协议达成一致的交易及输出。为区块链数据的查询提供 Merkle 校样的响应。如果客户端已获得正确的根哈希,则客户端可以轻松验证响应的完整性。Libra Blockchain...翻译 2019-06-30 19:35:12 · 1326 阅读 · 0 评论 -
Facebook Libra 准入控制(AC)简介
准入控制 Admission Control准入控制(AC)是 Libra 的公共 API,它响应来自客户端的公共 gRPC 请求。概述准入控制响应客户端的两种请求:SubmitTransaction - 将交易提交给关联的验证器。UpdateToLatestLedger - 查询存储,例如帐户状态,交易日志,协议等。实施细节准入控制(AC)实现了两个公共 API:Sub...翻译 2019-06-30 13:27:54 · 678 阅读 · 0 评论 -
Facebook Libra 加密简介
加密 Crypto我们在 Libra 中用到的所有加密原语,都实现在 Crypto 加密组件中,它包含:散列(Hashing),签名和密钥派生/生成。 在即将到来的版本中将包含的加密原语(位于 NextGen 目录)有:新的加密 API 来保证类型安全、可验证的随机函数、BLS 签名。概述Libra 使用了几种加密算法:SHA-3 作为主要的哈希函数。它在 FIPS 202 中被标准化。...翻译 2019-06-29 17:48:34 · 1343 阅读 · 0 评论 -
Facebook Move 语言 IR 编译器简介
Move IR 编译器概述Move IR 编译器将 Move IR 编译为字节码。Move IR 编译器将在 Move 中编写的模块和脚本编译为各自的字节码。输出的两种数据类型分别是 CompiledModule 和 CompiledScript。这些数据类型在 file_format.rs 中定义。除了将 Move IR 转换为 Move 字节码之外,编译器还是字节码验证器的测试工具。因...翻译 2019-06-28 13:14:33 · 1079 阅读 · 1 评论 -
Facebook Move 语言虚拟机 VM 简介
虚拟机 VMMove VM 执行以 Move 字节码表示的交易。它有两个核心包:核心 VM 和 VM 运行时。VM 核心包含 VM 的低级数据类型——主要是文件格式及其抽象。此处还定义了燃气计量(Gas metering???)逻辑抽象。概观MoveVM 是具有静态类型系统的堆栈机。 MoveVM 从几个方面来约束 Move 语言规范,包括混合文件格式、验证(可参阅验证器 README)和运...翻译 2019-06-28 13:04:09 · 2417 阅读 · 0 评论 -
为什么 Facebook 的 Move 语言叫 Move?
Facebook 提出 Move,一种安全灵活的 Libra 区块链编程语言。Move 是一种可执行的字节码语言,用于实现自定义交易和智能合约。Move 的关键特性是能够定义具有受线性逻辑启发的语义的自定义资源类型:资源永远不会被复制或隐式丢弃,只能在程序存储位置之间移动(Move)。这些安全保证都由 Move 的类型系统静态强制执行。尽管有这些特别保护,但资源还是程序中普通的一个值—...原创 2019-06-27 13:05:20 · 764 阅读 · 3 评论 -
Facebook Move 语言简介
简介Move 是一种新型编程语言,旨在为 Libra 区块链提供安全及可编程的基础。语言组织Move 语言的目录一般由五个部分组成:虚拟机(VM),它包含了字节码格式、字节码解释器和用于执行区块链交易的基础结构。此目录还包含生成区块链的基础结构。字节码验证器,它包含一个用于拒绝无效 Move 字节码的静态分析工具。虚拟机在执行每一段新的 Move 代码之前,先对它的字节码进行验证。编译...翻译 2019-06-27 09:42:20 · 1617 阅读 · 0 评论 -
发布 Libra Bug 悬赏项目
原文 https://developers.libra.org/blog/2019/08/14/libra-bug-bounty 2019-8-14在构建 Libra 区块链的过程中,安全问题一直是重中之重。假设人们在 Libra 上每一天都不间断运行着金融活动,可想而知最关键的是其背后的基础架构必须可靠且安全。为了显示更透明,我们在发布之前就充分计划好我们的计划,而且开源了 Libra 区块链...翻译 2019-10-06 14:38:33 · 438 阅读 · 2 评论 -
Libra 开发者采风
Libra Developer SpotlightSeptember 12, 2019Michael Engle, Libra Association我们很高兴看到全球各地有如此众多的开发者率先在 Libra 测试网上进行创新的工作。这里就把那些有亮点的例子分享出来!We’re so excited to see so many leading developers from ar...翻译 2019-10-07 09:39:57 · 947 阅读 · 0 评论 -
9月Libra开发人员更新-路线图#1
9月Libra开发人员更新-路线图#1 September Libra Developer Update - Roadmap #1October 02, 2019Libra Association自六月份正式发布 Libra 项目以来,来自开发人员社区的反响一直非常令人激动。开发者已发布了多个区块链浏览器(libranaut,libraview,librabrowser 和 libex...翻译 2019-10-09 12:15:59 · 768 阅读 · 0 评论