登陆

一分钟搞懂以太坊RLP编码规则

changfu001 2018-04-17 24639人围观 ,发现0个评论

  嘿,你又来啦?那个不甘平庸的普通人。

  阿基米德说:给我一个支点,我就能撬动地球。几千年过去了,阿基米德撬动地球了吗?没有,因为太阳系没有他这个支点。

  现实中,相信绝大多数人都没有阿基米德的智慧与能量,也不需要去撬动地球,往往只想与命运扳扳手腕,给人生变下轨迹,区块链将会是你撬动人生的支点吗?今天的干货送上。

一分钟搞懂以太坊RLP编码规则

  - 前言 -

  RLP(Recursive Length Prefix,递归长度前缀)编码算法,是以太坊中数据序列化/反序列化的主要方法。以太坊区块链中的区块、交易等数据结构在持久化时会先经过 RLP 编码后再存储到数据库中。

  RLP 编码只处理两类数据:

  ●字符串 e.g. this is string

  ●列符表 e.g. ["cat","horse",[[]],"pig",[""],"sheep"]

  其他数据类型的数据需要转换成以上的两类,转换的规则不是 RLP 编码定义的,可以根据自己的规则转换,例如struct可以转换成列表,int 可以转换成二进制(属于字符串一类),以太坊中整数都以大端形式存储。

  - RLP编码规则 1 -

  对于单个字节,如果它的值范围是[0x00,0x7f](ASCII码),它的 RLP 编码就是它本身。

  如:a à [0x61] (字符)

  100 à [0x64](数字)

  - RLP编码规则 2 -

  字符串长度是0-55字节,它的 RLP 编码包含一个单字节的前缀,后面跟着字符串的长度,再接着字符串本身。这个前缀的值0x80加上字符串的长度。由于被编码的字符串最大长度是55=0x37,因此单字节前缀的最大值是0x80+0x37=0xb7,即编码的第一个字节的取值范围是[0x80,0xb7]。

  字符串长度小于55字节的RLP 编码例子:

  “dog” à [0x83, 'd', 'o', 'g']

  其中0x83 = 0x80 + 3(“dog”字符串的长度)

  - RLP编码规则 3 -

  字符串长度大于55个字节,它的 RLP 编码包含一个单字节的前缀,后面跟着字符串的长度,再接着字符串本身。这个前缀的值是0xb7加上字符串长度的二进制形式的字节长度。由于被编码的字符串长度的二进制长度最少是1个字节,最大是8个字节,前缀的取值范围是[0xb8,0xbf]。

  字符串长度大于55字节的 RLP 编码例子:

  字符串:

  "Lorem ipsum dolor sit amet, consectetur adipisicing elit"

  字符串长度:

  56字节,其二进制形式为:00111000。其二进制形式的长度为8位,也就是1个字节长度。

  前缀:0xb7 + 1 = 0xb8

  字符串长度的16进制表示:56 à 0x38

  该字符串的 RLP 编码形式为:

  [0xb8, 0x38, 'L', 'o', 'r', 'e', 'm', ' ', ... , 'e', 'l', 'i', 't']


最近发表
2024“华文校园”全国大学生语文能力大赛

参赛须知

1.本大赛分为初赛和决赛两个阶段

2. 初赛提供练习题库(正式考试内容抽取于题库)考察题型分为判断题,单选题,考察范围包括但不限于读音、错别字、名句默写,病句、关联词、修辞等

【题库预计两周内上线 请各位参赛者耐心等待】

3. 初赛第一场考试时间:2024年6月15日【报名后四场任选一场参与即可】

 


      为提高大学生的语文综合素养、养成良好的语文学习习惯并培养实际的语文应用能力,现由中国语文报刊协会校园文化分会为主办单位举办“2024‘华文校园’全国大学生语文能力大赛”,旨在通过赛事激发学生对语文学习的兴趣和热爱,促进语文教育的全面提升和发展,培养优秀的语文人才。 

 

一、主办单位

中国语文报刊协会校园文化分会国家一级协会下设分会

官方网站:http://xywh.ihwrm.com/index/page/read.html?id=22

 

二、参赛对象

本次赛事面向全国在校大学生(包括研究生、本科生、高职高专学生)均可报名参赛,不限专业。同时欢迎对本次赛事感兴趣的社会各界人士积极参与。

 

三、参赛形式

本次大赛共分为初赛、决赛两个阶段。具体内容安排如下:

 

1.初赛:语言文字运用能力


      考察题型分为判断题,单选题。考察范围包括但不限于读音、错别字、名句默写,病句、关联词、修辞等,从多方面考察参赛者的语言文化基础。根据大赛上线时间,将提供练习题库供各位参赛者进行练习。

 

2.决赛:古诗词赏析


      大赛提供相关古诗词篇章,参赛者从中任选一篇进行多角度赏析(包括但不限于作者表达的情感态度、表达技巧以及思想感情等),字数为400-500字,最多不超过600字,作答时间为90分钟。

 

四、大赛日程

【开启报名】2024“华文校园”全国大学生语文能力大赛

【开启报名】2024“华文校园”全国大学生语文能力大赛

请关注微信公众号
微信二维码
不容错过
Powered By Z-BlogPHP