以太坊 RLP (递归长度前缀) 编码及RLP编码规则

学习笔记之RLP

RLP(Recursive Length Prefix)即递归长度前缀编码,RLP 主要用于以太坊数据的网络传输和持久化存储。
比较常见的序列化方法有 JSON,ProtoBuf,但是这些序列化方法在以太坊这样的场景下都有一些问题,如:

  • Json 编码,编码后的体积比较大,存在很多冗余数据。
  • protoBuf 这样的二进制格式呢,因 JavaScript 这样的弱类型语言,是没有 int 类型的,所有数字都是用 Number类型,底层用浮点数来实现,protoBuf 就会导致因为语言的不同编码后的数据有一定差异,最后得到的 hash 值也不同。

针对这些问题,以太坊设计了 RLP 编码,同时也大幅简化了编码规则。

RLP 编码基于上面两种数据类型提出了 5 条编码规则

(转自大牛博客,在此谢过)

你可能感兴趣的:(区块链,以太坊,RLP,编码)