Python implementation of EIP 1577 content hash
content-hash的Python项目详细描述
python的contenthash
eip 1577内容哈希的python实现。
说明
这是一个简单的包,用于对EIP 1577中指定的内容哈希进行编码和解码。 这个包对于每个想要与EIP 1577兼容的ENS resolvers交互的Ethereum开发人员都很有用。
有关javascript实现,请参见^{
安装
要求
ContentHash需要Python3.5或更高版本。
来自Pypi
建议使用pip从pypi安装contenthash。
pip install content-hash
来源
或者,也可以从源代码安装它。
git clone https://github.com/filips123/ContentHashPy.git
cd ContentHashPy
python setup.py install
用法
支持的编解码器
当前支持以下编解码器:
swarm-ns
ipfs-ns
ipns-ns
onion
onion3
zeronet
获取编解码器
可以使用get_codec
函数从内容哈希中获取编解码器。
它将内容哈希作为十六进制字符串并返回编解码器名称。内容哈希可以以0x
作为前缀,但它不是必需的。
importcontent_hashchash='bc037a716b746c776934666563766f367269'codec=content_hash.get_codec(chash)print(codec)# onion
解码
可以使用decode
函数对内容哈希进行解码。
它将内容哈希作为十六进制字符串,并将解码的内容作为字符串返回。内容哈希可以以0x
作为前缀,但它不是必需的。
importcontent_hashchash='e3010170122029f2d17be6139079dc48696d1f582a8530eb9805b561eda517e22a892c7e3f1f'value=content_hash.decode(chash)print(value)# QmRAQB6YaCyidP37UdDnjFY5vQuiBrcqdyoW1CuDgwxkD4
编码
可以使用encode
函数对内容哈希进行编码。
它将支持的编解码器作为字符串,将值作为字符串,并将相应的内容哈希作为十六进制字符串返回。输出的前缀不会是0x
。
importcontent_hashvalue='d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162'chash=content_hash.encode(chash)print(chash)# e40101701b20d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162
创建编解码器
所有支持的编解码器配置文件都可以在^{PROFILES
字典中找到。你需要在那里添加一个新的配置文件。
每个配置文件必须与multicodec
库中相应的编解码器同名。
配置文件还必须具有解码和编码功能。它们应该作为包含所需解码或编码模块名称的字符串传递。所有这些模块都可以在^{
每个模块名称都应该尽可能地描述它。其名称只能包含python模块的有效字符。
每个解码模块必须有一个decode
函数。它必须是接受bytes
输入并返回str
结果的函数。
每个编码模块必须有一个encode
函数。它必须是接受str
输入并返回bytes
结果的函数。
所有输入和输出必须与JavaScript implementation中的相同。多个配置文件可以共享相同的解码和编码。
版本控制
此库使用SemVer进行版本控制。有关可用的版本,请参见此存储库上的the tags。
许可证
这个图书馆是根据麻省理工学院的许可证授权的。有关详细信息,请参见LICENSE文件。