- 浏览: 379047 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (433)
- 编程语言-JAVA/Scala/Clojure/Grovvy (86)
- 编程语言-C (227)
- 编程语言-Rust/C++/Objective-C/Objective-C++ (97)
- 编程语言-PHP (4)
- 编程语言-Perl (4)
- 编程语言-Javascript (6)
- 编程语言-Scheme/Lisp (9)
- 编程语言-lua (5)
- 编程语言-erl (4)
- 编程语言-go (4)
- 编程语言-Ruby (3)
- 编程语言-python (4)
- 编程语言-smalltalk (3)
- 编程语言-guile (3)
- 算法结构 (32)
- 多线程编程 (2)
- 网络编程 (7)
- 并发编程 (21)
- 并行编程 (2)
- 事务 (4)
- 架构/编程-模型/模式/思想 (6)
- 开发框架-Spring (2)
- 开发框架-ibatis (0)
- 开发框架-Struts (0)
- 开发框架-Hibernate (0)
- 开发框架-mybatis (0)
- 分布式 (38)
- 分布式存储 (10)
- 分布式文件系统-dfs (4)
- 分布式计算 (2)
- 分布式事务 (10)
- 分布式数据中间件 (1)
- 分布式服务框架 (12)
- rpc (8)
- 通信 (23)
- 电信 (3)
- 电商 (1)
- 互联网应用 (2)
- 大前端 (5)
- 第三方支付 (2)
- CSS (1)
- android (3)
- ios (0)
- html5 (0)
- kafka (0)
- memcached (2)
- nginx (1)
- 并行计算 (1)
- 实时计算 (0)
- Storm (0)
- 数据库 (7)
- mysql (6)
- oracle (3)
- redis (4)
- mongodb (2)
- hbase (1)
- dal (0)
- handoop (1)
- 机器学习-ML (3)
- 深度学习-DL (0)
- 神经网络 (0)
- netty (4)
- mina (0)
- 大数据 (7)
- 大数据-算法 (0)
- 大数据-框架&平台 (3)
- 人工智能 (7)
- 人工智能-算法 (4)
- 人工智能-框架&平台 (0)
- 协议 (42)
- 安全 (15)
- 消息队列 (2)
- os(linux、windows) (85)
最新评论
RLP
Recursive Length Prefix
RLP元素:
item,list
长度编码
数据编码
数据编码和长度编码采用的是相同的编码规则。
编码规则:
<input> -> <length of data prefix> | <length of data prefix><data> | <input> | <length of data prefix>(<input>)+
<input> -> -128, 1-127
<data> -> (octet①)*
<length of data prefix> -> <length of length prefix> | <length of length prefix><length of data>
<length of length prefix> -> octet②
RLP
长list偏移
<offset long list> -> 0xf7 -> 247, -9(1111 0111)
短list偏移
<offset short list> -> 0xc0 -> 192, -64(1100 0000)
长item偏移
<offset long item> -> 0xb7 -> 183, -73(1011 0111)
短item偏移
<offset short item> -> 0x80 -> 128, -128(1000 0000)
<length of length prefix> > <offset long list> -> <long list>
<offset short list> <= <length of length prefix> <= <offset long list> -> <short list>
<offset long item> < <length of length prefix> < <offset short list> -> <long item>
<offset short item> < <length of length prefix> <= <offset long item> -> <short item>
<length of length prefix> = <offset short item> -> <null item>
<length of length prefix> < <offset short item> -> <single byte item>
编码规则:
<input> -> <length of data prefix> | <length of data prefix><data> | <input> | <length of data prefix>(<input>)+
<input> -> -128, 1-127
<data> -> (octet①)*
<length of data prefix> -> <length of length prefix> | <length of length prefix><length of data>
<length of length prefix> -> octet②
如果<offset short item> < <length of length prefix> <= <offset long item>
<input> -> <length of data prefix><data>
<length of data prefix> -> octet
octet -> L + <offset short item>
如果<offset long item> < <length of length prefix> < <offset short list>
<input> -> <length of data prefix><data>
<length of data prefix> -> <length of length prefix><length of data>
<length of length prefix> -> LL + <offset long item>
<length of data> -> (octet①)LL
L -> (octet[0] & 0xFF) << (8 * LL - 1) + (octet[1] & 0xFF) << (8 * LL - 2) + (octet[2] & 0xFF) << (8 * LL - 3) + ... + (octet[LL - 1] & 0xFF) << (8 * LL - LL)
<data> -> (octet②)L
如果<offset short list> <= <length of length prefix> <= <offset long list>
<input> -> <length of data prefix> | <length of data prefix><data> | <input> | <length of data prefix>(<input>)+
<length of data prefix> -> <length of length prefix> | <length of length prefix><length of data>
<length of length prefix> -> L + <offset short list>
<data> -> (octet)L
如果<length of length prefix> > <offset long list>
<input> -> <length of data prefix> | <length of data prefix><data> | <input> | <length of data prefix>(<input>)+
<length of data prefix> -> <length of length prefix> | <length of length prefix><length of data>
<length of data prefix> -> octet
octet -> LL + <offset long list>
<length of data> -> (octet①)LL
L -> (octet[0] & 0xFF) << (8 * LL - 1) + (octet[1] & 0xFF) << (8 * LL - 2) + (octet[2] & 0xFF) << (8 * LL - 3) + ... + (octet[LL - 1] & 0xFF) << (8 * LL - LL)
<data> -> (octet②)L
RLP
输入:
只支持String, Integer, Long以及BigInteger。
支持byte[]
数组,且不可以是原始数据类型的数组。
支持Object[],数组中的元素必须是1中指定的类型或者嵌套的数组(包括byte[]、Object[])。
数组支持嵌套
Integer和Long在内部都是按照BigInteger处理。
RLP
数据编码
<input> -> <length of data prefix> | <length of data prefix><data> | <input> | <length of data prefix>(<input>)+
<input> -> -128, 1-127
<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
input: (byte[0]) -> output: 0x80
input: (Object[0]) | (String[0]) | (Integer[0]) | (Long[0]) | (BigInteger[0]) -> output: 0xC0
input: (byte) 0 -> output: Unsupported type: Only accepting String, Integer and BigInteger for now
input: (byte[1]) -128, 0,1,2,...,127 -> output: -128, 0,1,2,...,127
Recursive Length Prefix
RLP元素:
item,list
长度编码
数据编码
数据编码和长度编码采用的是相同的编码规则。
编码规则:
<input> -> <length of data prefix> | <length of data prefix><data> | <input> | <length of data prefix>(<input>)+
<input> -> -128, 1-127
<data> -> (octet①)*
<length of data prefix> -> <length of length prefix> | <length of length prefix><length of data>
<length of length prefix> -> octet②
RLP
长list偏移
<offset long list> -> 0xf7 -> 247, -9(1111 0111)
短list偏移
<offset short list> -> 0xc0 -> 192, -64(1100 0000)
长item偏移
<offset long item> -> 0xb7 -> 183, -73(1011 0111)
短item偏移
<offset short item> -> 0x80 -> 128, -128(1000 0000)
<length of length prefix> > <offset long list> -> <long list>
<offset short list> <= <length of length prefix> <= <offset long list> -> <short list>
<offset long item> < <length of length prefix> < <offset short list> -> <long item>
<offset short item> < <length of length prefix> <= <offset long item> -> <short item>
<length of length prefix> = <offset short item> -> <null item>
<length of length prefix> < <offset short item> -> <single byte item>
编码规则:
<input> -> <length of data prefix> | <length of data prefix><data> | <input> | <length of data prefix>(<input>)+
<input> -> -128, 1-127
<data> -> (octet①)*
<length of data prefix> -> <length of length prefix> | <length of length prefix><length of data>
<length of length prefix> -> octet②
如果<offset short item> < <length of length prefix> <= <offset long item>
<input> -> <length of data prefix><data>
<length of data prefix> -> octet
octet -> L + <offset short item>
如果<offset long item> < <length of length prefix> < <offset short list>
<input> -> <length of data prefix><data>
<length of data prefix> -> <length of length prefix><length of data>
<length of length prefix> -> LL + <offset long item>
<length of data> -> (octet①)LL
L -> (octet[0] & 0xFF) << (8 * LL - 1) + (octet[1] & 0xFF) << (8 * LL - 2) + (octet[2] & 0xFF) << (8 * LL - 3) + ... + (octet[LL - 1] & 0xFF) << (8 * LL - LL)
<data> -> (octet②)L
如果<offset short list> <= <length of length prefix> <= <offset long list>
<input> -> <length of data prefix> | <length of data prefix><data> | <input> | <length of data prefix>(<input>)+
<length of data prefix> -> <length of length prefix> | <length of length prefix><length of data>
<length of length prefix> -> L + <offset short list>
<data> -> (octet)L
如果<length of length prefix> > <offset long list>
<input> -> <length of data prefix> | <length of data prefix><data> | <input> | <length of data prefix>(<input>)+
<length of data prefix> -> <length of length prefix> | <length of length prefix><length of data>
<length of data prefix> -> octet
octet -> LL + <offset long list>
<length of data> -> (octet①)LL
L -> (octet[0] & 0xFF) << (8 * LL - 1) + (octet[1] & 0xFF) << (8 * LL - 2) + (octet[2] & 0xFF) << (8 * LL - 3) + ... + (octet[LL - 1] & 0xFF) << (8 * LL - LL)
<data> -> (octet②)L
RLP
输入:
只支持String, Integer, Long以及BigInteger。
支持byte[]
数组,且不可以是原始数据类型的数组。
支持Object[],数组中的元素必须是1中指定的类型或者嵌套的数组(包括byte[]、Object[])。
数组支持嵌套
Integer和Long在内部都是按照BigInteger处理。
RLP
数据编码
<input> -> <length of data prefix> | <length of data prefix><data> | <input> | <length of data prefix>(<input>)+
<input> -> -128, 1-127
<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
input: (byte[0]) -> output: 0x80
input: (Object[0]) | (String[0]) | (Integer[0]) | (Long[0]) | (BigInteger[0]) -> output: 0xC0
input: (byte) 0 -> output: Unsupported type: Only accepting String, Integer and BigInteger for now
input: (byte[1]) -128, 0,1,2,...,127 -> output: -128, 0,1,2,...,127
发表评论
-
Redis: 安装
2020-10-12 05:02 291Redis 安装 其实之前有一篇文章记录过red ... -
关于原子性
2019-05-25 00:56 447关于原子性 -
持久性和一致性:事务日志的记录以及在记录数据时和数据保持一致
2019-03-07 18:55 646持久性和一致性:事务日志的记录以及在记录数据时和数据保持一 ... -
关于order的问题
2019-02-27 21:19 450关于order的问题 这 ... -
再谈分布式服务及框架
2019-02-17 02:18 418再谈分布式服务及框 ... -
服务网格 vs 去中心化的服务发现机制的分布式服务
2019-02-16 01:18 698服务网格 vs 去中心化的服务发现机制的分布式服务 -
EVCache
2019-02-14 21:03 01、Ephemeral 2、可见(Volatile) ... -
微服务
2019-02-14 01:44 962Ribbon是微服务的一个核心基础组件,提供多协议HTTP ... -
Last Agent Optimization
2018-09-30 19:42 431Last Agent Optimization 1. Non ... -
dubbo 协议
2017-12-06 16:32 2297encode one to one org.jboss.net ... -
Hessian远程调用(基于Netty)
2017-10-15 15:17 452public class HessianMethodI ... -
RoundRobin
2017-10-15 03:58 441public int index() { ret ... -
X/Open DTP模型-组件接口
2017-08-29 14:56 508TX接口 Application Program向Transa ... -
事务(transaction)
2017-08-29 01:23 478事务 由一组操作组成的完整的可被取消的工作单元. ... -
zookeeper事务日志文件结构
2017-07-21 17:23 813zookeeper事务日志文件结构: -
zookeeper中的消息结构
2017-07-17 01:39 389zookeeper中的消息结构: acl参考文 ... -
Ceph 文件存储、对象存储、内存存储、KV存储支持:ObjectStore::create
2017-06-03 19:06 1277ObjectStore *ObjectStore::cre ... -
分布式服务:中心化的服务注册中心(服务注册及发现)->弱化->去中心化的服务发现
2016-12-18 18:33 330分布式服务:中心化的服务注册中心(服务注册及发现) -&g ... -
RADOS: A Scalable, Reliable Storage Service for Petabyte-scale Storage Clusters
2016-12-13 13:59 654RADOS: A Scalable, Reliable S ... -
过半: Paxos's quorum & Kafka's ISR
2016-12-12 14:22 586过半: Paxos's quorum Kafka's I ...
相关推荐
RLP加壳-无毒版
RLP,即Recursive Length Prefix
资源来自pypi官网。 资源全名:rlp-1.0.2.tar.gz
资源来自pypi官网。 资源全名:rlp-1.0.0b5.tar.gz
import * as rlp from 'rlp' const nestedList = [ [ ] , [ [ ] ] , [ [ ] , [ [ ] ] ] ] const encoded = rlp . encode ( nestedList ) const decoded = rlp . decode ( encoded ) assert . deepEqual ( nestedList...
递归长度前缀编码(RLP)的Python实现。 您可以在找到该标准的规范,并在上此软件包的文档。 发布设置 对于类似Debian的系统: apt install pandoc 要发布新版本: make release bump= $$ VERSION_PART_TO_BUMP $...
python库。 资源全名:msgpack_rlp-0.6.1-cp27-cp27mu-manylinux1_i686.whl
python库,解压后可用。 资源全名:rusty_rlp-0.1.14-cp37-none-win_amd64.whl
资源来自pypi官网。 资源全名:rusty_rlp-0.1.14-cp37-none-win_amd64.whl
C393070_电流采样电阻-分流器_RLP25FEGR010_规格书_大毅科技电流采样电阻_分流器规格书.PDF
python库,解压后可用。 资源全名:rusty_rlp-0.1.10-cp36-cp36m-manylinux1_x86_64.whl
资源来自pypi官网。 资源全名:rusty_rlp-0.1.10-cp36-cp36m-manylinux1_x86_64.whl
资源来自pypi官网。 资源全名:rusty_rlp-0.1.11-cp36-cp36m-macosx_10_7_x86_64.whl
以太坊 RLP 编码 RLP(“递归长度前缀”)编码是以太坊中使用的主要序列化格式 有关详细信息,请参阅 。
线通过性预测系数全极点模型来计算正规化线性倒谱功率程序
rlp.cr:一个纯库,实现纯水晶语言的递归长度前缀
ckc-rlp 奖励,忠诚度计划crm
萨哈纳·伊甸园 Sahana Eden是紧急开发环境-一个开源框架,用于快速构建功能强大的紧急管理应用程序。 它是一个基于Web的协作工具,可解决灾难期间常见的协调问题,包括寻找失踪人员,管理援助,管理志愿者,有效...