为什么以太坊使用RLP编码

时间:2018-02-28 07:35:58

标签: encoding blockchain ethereum data-serialization

为什么以太坊使用RLP编码编码来序列化数据?我的意思是有没有使用现有格式的特定原因? RLP除了非常紧凑和节省空间。

2 个答案:

答案 0 :(得分:0)

RLP(递归长度前缀)的目的是对二进制数据的任意嵌套数组进行编码,RLP是用于在以太坊中序列化对象的主要编码方法。看到这个RLP

RLP只是您提到的一种选择,可能有人会熟悉这种格式,而有些人则不熟悉,但是一旦选择了这项技术,最好在一个项目中保持一致,以免混淆其他项目。

答案 1 :(得分:0)

  1. 实现简单,它建立在 ASCII 编码之上。
  2. 保证绝对字节完美的一致性。特别是对于Key/Value Map数据结构,我们可以将其表示为[[k1, v1], [k2, v2], ...],但是key的排序是不稳定的,这意味着在不同的实现中使用相同的值(Map)会输出不同的结果。所以 RLP 保证了以太坊 tx 哈希需要一致性。