文章目录
版本说明
源码分析使用的版本为:v1.10.3
RLP源码解析
一、介绍RLP
RLP是Recursive Length Prefix的简写。是以太坊中的序列化方法,以太坊的所有对象都会使用RLP方法序列化为字节数组。这里我希望先从黄皮书来形式化上了解RLP方法, 然后通过代码来分析实际的实现。
RLP把所有的数据看成两类数据的组合, 一类是字节数组, 一类是类似于List的数据结构。 我理解这两类基本包含了所有的数据结构。 比如用得比较多的struct。 可以看成是一个很多不同类型的字段组成的List
二、分析RLP源文件
RLP的源码不是很多:
decode.go 解码器,把RLP数据解码为go的数据结构
decode_tail_test.go 解码器测试代码
decode_test.go 解码器测试代码
doc.go 文档代码
encode.go 编码器,把GO的数据结构序列化为字节数组
encode_test.go 编码器测试
encode_example_test.go
raw.go 未解码