- 浏览: 427291 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 346Redis 安装 其实之前有一篇文章记录过red ... -
关于原子性
2019-05-25 00:56 502关于原子性 -
持久性和一致性:事务日志的记录以及在记录数据时和数据保持一致
2019-03-07 18:55 702持久性和一致性:事务日志的记录以及在记录数据时和数据保持一 ... -
关于order的问题
2019-02-27 21:19 498关于order的问题 这 ... -
再谈分布式服务及框架
2019-02-17 02:18 460再谈分布式服务及框 ... -
服务网格 vs 去中心化的服务发现机制的分布式服务
2019-02-16 01:18 758服务网格 vs 去中心化的服务发现机制的分布式服务 -
EVCache
2019-02-14 21:03 01、Ephemeral 2、可见(Volatile) ... -
微服务
2019-02-14 01:44 1011Ribbon是微服务的一个核心基础组件,提供多协议HTTP ... -
Last Agent Optimization
2018-09-30 19:42 473Last Agent Optimization 1. Non ... -
dubbo 协议
2017-12-06 16:32 2345encode one to one org.jboss.net ... -
Hessian远程调用(基于Netty)
2017-10-15 15:17 493public class HessianMethodI ... -
RoundRobin
2017-10-15 03:58 501public int index() { ret ... -
X/Open DTP模型-组件接口
2017-08-29 14:56 553TX接口 Application Program向Transa ... -
事务(transaction)
2017-08-29 01:23 532事务 由一组操作组成的完整的可被取消的工作单元. ... -
zookeeper事务日志文件结构
2017-07-21 17:23 858zookeeper事务日志文件结构: -
zookeeper中的消息结构
2017-07-17 01:39 438zookeeper中的消息结构: acl参考文 ... -
Ceph 文件存储、对象存储、内存存储、KV存储支持:ObjectStore::create
2017-06-03 19:06 1331ObjectStore *ObjectStore::cre ... -
分布式服务:中心化的服务注册中心(服务注册及发现)->弱化->去中心化的服务发现
2016-12-18 18:33 369分布式服务:中心化的服务注册中心(服务注册及发现) -&g ... -
RADOS: A Scalable, Reliable Storage Service for Petabyte-scale Storage Clusters
2016-12-13 13:59 705RADOS: A Scalable, Reliable S ... -
过半: Paxos's quorum & Kafka's ISR
2016-12-12 14:22 617过半: Paxos's quorum Kafka's I ...
相关推荐
RLP(Relocation Length Prefix)加壳技术是一种用于保护可执行程序的方法,它通过在原始程序上添加一层外壳,使得程序在运行时的行为发生变化。这种技术通常被安全研究人员和恶意软件开发者用来隐藏程序的真实性质...
在IT领域,尤其是在信号处理和语音识别中,"rlp.rar_matlab_meatqfu_rlp_全极点"这个标题涉及到的是一个基于Matlab的算法实现,用于计算正规化线性倒谱功率(NLP)的一种特殊模型,即全极点模型。全极点模型是一种在...
《Python库rusty_rlp-0.1.14-cp37-none-win_amd64.whl详解》 在Python编程中,库是开发者的重要工具,它们提供了丰富的功能,帮助程序员快速高效地完成任务。本文将深入探讨名为`rusty_rlp`的Python库,该库的版本...
标题中的"PyPI 官网下载 | rusty_rlp-0.1.11-cp36-cp36m-macosx_10_7_x86_64.whl"指的是一个Python软件包,rusty_rlp的特定版本0.1.11,它可以在Python的包索引(PyPI)官方网站上找到。PyPI是Python开发者发布和...
电流采样电阻-分流器RLP25FEGR010规格书 本规格书详细描述了电流采样电阻-分流器RLP25FEGR010的规格和特性,该产品由TA-I TECHNOLOGY CO., LTD制造,适用于汽车电子应用,满足AEC-Q 200-ver D的资格认证。 一、...
**RLP-RDN4Z** 是驭光科技推出的一款先进的红外激光随机散斑投射器,该产品采用了创新的 DOE(衍射光学元件)技术。DOE 的应用使得 RLP-RDN4Z 在小型化的同时能够实现高效的光利用效率。该设备适用于 3D 感知领域的...
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
资源来自pypi官网。 资源全名:rusty_rlp-0.1.14-cp37-none-win_amd64.whl
python库,解压后可用。 资源全名:rusty_rlp-0.1.10-cp36-cp36m-manylinux1_x86_64.whl
资源来自pypi官网。 资源全名:rusty_rlp-0.1.10-cp36-cp36m-manylinux1_x86_64.whl
以太坊 RLP 编码 RLP(“递归长度前缀”)编码是以太坊中使用的主要序列化格式 有关详细信息,请参阅 。
**RLP(Recursive Length Prefix)** 是一种在以太坊区块链系统中广泛使用的序列化协议。它的主要目的是将任意的二进制数据结构编码为字节流,以便在网络中高效地传输和存储。RLP的设计目标是保持简洁、可预测且高效...
【ckc-rlp:奖励,忠诚度计划CRM】 在当今的商业环境中,客户关系管理(CRM)系统已经成为企业成功的关键因素。ckc-rlp是一个专注于奖励和忠诚度计划的CRM解决方案,它利用JavaScript技术来创建一个互动且个性化的...