请您先登录,才能继续操作
浏览 1013 次
锁定老帖子 主题:RLP
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2018-04-05
Recursive Length Prefix RLP元素: item,list 长度编码 数据编码 数据编码和长度编码采用的是相同的编码规则。 编码规则: <encoded data> -> <length of data prefix> | <length of data prefix><data> | <length of data prefix>(<encoded data>)+ <data> -> (octet①)* <length of data prefix> -> <length of length prefix> | <length of length prefix><length of data> <length of length prefix> -> octet② RLP 输入: 只支持String, Integer, Long以及BigInteger。 支持byte[] 数组,且不可以是原始数据类型的数组。 支持Object[],数组中的元素必须是1中指定的类型或者嵌套的数组(包括byte[]、Object[])。 数组支持嵌套 Integer和Long在内部都是按照BigInteger处理。 RLP 长list偏移 <offset long list> -> 0xf7 -> 247(1111 0111) 短list偏移 <offset short list> -> 0xc0 -> 192(1100 0000) 长item偏移 <offset long item> -> 0xb7 -> 183(1011 0111) 短item偏移 <offset short item> -> 0x80 -> 128(1000 0000) RLP 数据编码 <encoded data> -> <length of data prefix> | <length of data prefix><data> <data> -> (octet①)* <length of data prefix> -> <length of length prefix> | <length of length prefix><length of data> <length of length prefix> -> octet② RLP 长度编码 如果输入数据字节流长度L < 56(0011 1000): <length of data prefix> -> <length of length prefix> <length of data prefix> -> <length of length prefix> <length of length prefix> -> octet octet -> L + <offset short item> | <offset short list> RLP 如果255(0xff, 1111 1111) < 输入数据字节流长度L < 最大item长度(2^64): <length of data prefix> -> <length of length prefix><length of data> <length of data> -> (octet①)+ + -> <size of octet①> <size of octet①> -> octet② <length of length prefix> -> octet③ octet③ -> octet② + <offset short item> | <offset short list> + 56(0011 1000) - 1 如果56(0011 1000) <= 输入数据字节流长度L <= 255(0xff, 1111 1111): <length of data prefix> -> <length of length prefix><length of data> <length of data> -> octet① <length of length prefix> -> octet② octet② -> 1 + <offset short item> | <offset short list> + 56(0011 1000) - 1 如果输入为空数组(empty) 0xC0 如果输入数据字节流长度为1且输入的这个字节<=短item偏移(0x80) 直接输出。如输入0,1,2,...,127,输出0,1,2,...,127 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |