一起来读源码230-Ipfs 第三方库:go-cid

摘要

一个自描述地址项目

详情

go-cid

定义全局变量

名称类型注释
Raw“raw”0x55, 滚动
DagProtobuf“protobuf”0x70, dag协议
DagCBOR“cbor”0x71
Libp2pKey“libp2p-key”0x72
GitRaw“git-raw”0x78
EthBlock“eth-block”0x90, 以太坊块
EthBlockList“eth-block-list”0x9, 以太坊块列表
EthTxTrie“eth-tx-trie”0x92
EthTx“eth-tx”0x93
EthTxReceiptTrie“eth-tx-receipt-trie”0x94
EthTxReceipt“eth-tx-receipt”0x95
EthStateTrie“eth-state-trie”0x96
EthAccountSnapshot“eth-account-snapshot”0x97
EthStorageTrie“eth-storage-trie”0x98
BitcoinBlock“bitcoin-block”0xb0
BitcoinTx“bitcoin-tx”0xb1
ZcashBlock“zcash-block”0xc0
ZcashTx“zcash-tx”0xc1
DecredBlock“decred-block”0xe0
DecredTx“decred-tx”0xe1
DashBlock“dash-block”0xf0
DashTx“dash-tx”0xf1
FilCommitmentUnsealed“fil-commitment-unsealed”0xf101
FilCommitmentSealed“fil-commitment-sealed”0xf102

定义全局函数

函数注释
Fuzz(data []byte) int测试cid的相关转换函数是否有效
NewCidV0(mhash mh.Multihash) Cid新建一个cid包裹的multihash(推荐优先使用NewCidV1)
NewCidV1(codecType uint64, mhash mh.Multihash) Cid新建一个cid包裹的multihash
Parse(v interface{}) (Cid, error)将对象解析成cid
Decode(v string) (Cid, error)str解码成Cid
ExtractEncoding(v string) (mbase.Encoding, error)提取编码器
Cast(data []byte) (Cid, error)byte数组转cid (数据格式:版本 编码器类型 multihash)
PrefixFromBytes(buf []byte) (Prefix, error)二进制数组转前缀
CidFromBytes(data []byte) (int, Cid, error)二进制数组转cid
NewPrefixV0(mhType uint64) Prefixnew一个v0版本的前缀
NewPrefixV1(codecType uint64, mhType uint64) Prefixnew一个v1版本的前缀

定义接口

Builder 构造器
接口注释
Sum(data []byte)(Cid, error)?
GetCodec() uint64?
WithCodec(uint64) Builder?

定义类

V0Builder v0版本构建器
名字类型注释
Sum(data []byte)(Cid, error)?
GetCodec() uint64
WithCodec(c uint64) Builder
V1Builder v1版本构建器
名字类型注释
Codecuint64
MhTypeuint64
MhLengthint
Sum(data []byte) (Cid, error)func?
GetCodec() uint64func?
WithCodec(c uint64) Builderfunc?
Prefix 前缀
名字类型注释
Versionuint64版本
Codecuint64编解码器
MhTypeuint64multihash版本
MhLengthintmultihash长
Sum(data []byte) (Cid, error)func与二进制数组求和并返回一个cid
Bytes() []bytefunc返回前缀的二进制数组
GetCodec() uint64func?
WithCodec(c uint64) Builderfunc?
Cid 自描述地址
名字类型注释
strstring地址内容
Defined() boolfunc是否已被定义
UnmarshalBinary(data []byte) errorfunc解析二进制数组
UnmarshalText(text []byte) errorfunc解析文本
Version() uint64func返回cid版本 0或1
Type() uint64func返回cid类型
String() stringfunc返回 版本0:b58str 版本1:b32str
StringOfBase(base mbase.Encoding) (string, error)func返回str的进制
Encode(base mbase.Encoder) stringfunccid编码成str
Hash() mh.Multihashfunc返回cid的hash
Bytes() []bytefunc返回cid的二进制数据
ByteLen() intfunc返回cid的二进制数据长度
WriteBytes(w io.Writer) (int, error)func写入二进制数据
MarshalBinary() ([]byte, error)func格式化二进制
MarshalText() ([]byte, error)func格式化文本
Equals(o Cid) boolfunc判断2个cid是否相等
UnmarshalJSON(b []byte) errorfunc反格式化json转为cid
MarshalJSON() ([]byte, error)func格式化json
KeyString() stringfunc返回string类型的cid内容
Loggable() map[string]interface{}func导出map[“cid”]cid 这种格式
Prefix() Prefixfunc返回前缀
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值