RLP

RLP(Recursive Length Prefix)递归长度前缀编码,是由以太坊提出的序列化/反序列化标准,相比json格式体积更小,相比protobuf对多语言的支持更强。

RLP将数据分为两类:

  1. 字符串
  2. 列表(可以包含字符串和列表)

编码规则

  1. 字符串长度是1,并且值属于[0x00, 0x7f],那么其RLP编码就是字符串本身
  2. 字符串长度是0-55,那么RLP编码为前缀0x80+字符串长度,即[0x80, 0xb7],后面接字符串本身
  3. 字符串长度大于55,那么RLP编码为前缀0xb7+字符串长度的长度(最大8字节),即[0xb8, 0xbf],后接长度编码+字符串本身
  4. 列表长度是0-55,那么RLP编码为前缀0xc0+列表长度,即[0xc0, 0xf7],后接列表中各数据项的rlp编码
  5. 列表长度大于55,那么RLP编码为前缀0xf7+列表长度的长度(最大8字节),即[0xf8, 0xff],后接列表中各数据项rlp编码

最新文章

  1. Ubuntu 16.04 install 搜狗输入法
  2. ( [原创] 4s摄像头出现的问题及解决办法集锦。
  3. mysql性能监控相关
  4. MVC中用Jpaginate分页 So easy!(兼容ie家族)
  5. python中的reduce(转)
  6. 临时2级页表的初始化过程 head_32.S 相关代码解释
  7. Android 自学之滚动视图ScrollView
  8. php跨服务器信息获取之cURL
  9. UVa 474 - Heads / Tails Probability
  10. OS X EI Capitan 10.11 & xcode 7.0 beta(7A120f) -- cocoapods安装失败
  11. 学习Spark——那些让你精疲力尽的坑
  12. .net 自动摘要等算法 HanLP.net
  13. Oracle的Recyclebin策略
  14. JAVA中的设计模式三(策略模式)
  15. Unity Editor 下创建Lua和Text文件
  16. Java日志框架-logback的介绍及配置使用方法(纯Java工程)(转)
  17. jq版本的checkbox有radio的单选效果(可得到value值)
  18. 【XMPP】XMPP类型
  19. mitmproxy 中间人攻击的小玩笑
  20. js数据结构之链表(单链表、双向链表、循环链表)

热门文章

  1. 渣渣的Leetcode之旅(Python3)_1.两数之和
  2. oracle之三资源管理
  3. Node.js 从零开发 web server博客项目[登录]
  4. AtomicInteger原理&源码分析
  5. 关于bat/cmd中转义符的使用
  6. Java10新特性
  7. Java源码赏析(六)Java String 三顾
  8. Bottleneck靶机渗透
  9. java经典算法40题-附带解决代码
  10. node核心模块-vm