RLP介紹
RLP是Recursive Length Prefix的簡寫北启。是以太坊中的序列化方法,以太坊的所有對象都會使用RLP方法序列化為字節(jié)數(shù)組腕扶。
RLP代碼結(jié)構(gòu)
decode.go //解碼器稿存,把RLP數(shù)據(jù)解碼為go的數(shù)據(jù)結(jié)構(gòu)
decode_tail_test.go //解碼器測試代碼
decode_test.go //解碼器測試代碼
doc.go //文檔代碼
encode.go //編碼器,把GO的數(shù)據(jù)結(jié)構(gòu)序列化為字節(jié)數(shù)組
encode_test.go //編碼器測試
encode_example_test.go
raw.go //未解碼的RLP數(shù)據(jù)
raw_test.go
typecache.go //類型緩存斟湃, 類型緩存記錄了類型->(編碼器|解碼器)的內(nèi)容。
根據(jù)類型找到對應(yīng)的編碼器和解碼器 typecache.go
GO語言本身不支持重載和泛型檐薯,typecache.go實現(xiàn)了通過自身的類型來快速的找到自己的編碼器函數(shù)和解碼器函數(shù)凝赛。