用python实现cardano区块链项目
python-cardano的Python项目详细描述
cardano项目的python实现,包括网络协议、密码原语、钱包逻辑等。
为什么选择这个项目
- 我们希望探索其他设计决策,以支持轻量钱包,并开始为卡达诺开发移动钱包。目前官方钱包节点还不够。
- 探索集群钱包节点的设计空间。
- 用另一种编程语言提供Cardano协议和规范的替代实现。 在未来,它可能是卡达诺生态系统项目的替代性基础:钱包、侧链、MPCs。
为什么是python
python仍然是目前设计最干净、开发人员最友好的编程语言之一,享有 可执行伪代码。gevent提供的轻量级线程使得它适合编写网络软件,并且很容易 由于cython,与c的互操作性使我们能够逐步提高性能。
使用python,我们可以非常快速地开发干净的原型,具有良好的性能。在将来,我们总是可以将CPU密集型代码移到C 在我们确认了热点之后。
构建和测试
$ virtualenv -p python3 .env $ source .env/bin/activate $ pip install -r requirements.txt $ python setup.py build_ext --inplace $ mkdir ./test_db $ python scripts/pycardano.py run sync block data from mainnet and subscribing for new blocks automatically. $ python scripts/pycardano.py wallet create default generate wallet
功能
- 将不同时期的块数据存储在单独的rocksdb数据库中,提供更好的磁盘使用率(完全同步的主链占用1.3g磁盘空间),并允许将来更快的同步。
- pycardano.py sign用钱包签名,证明钱包地址属于你。
- pycardano.py verify验证已签名的邮件。
- pycardano.py utxo stat一些全局utxos的统计信息。
模块
cardano.address
实现Cardano HD地址的派生和编码,以及Lagacy地址格式的钱包恢复。
cardano.transport
实现Haskell的网络传输TCP,在单个TCP连接上多路传输多个轻量级单向连接。
cardano.node
实现cardano sl的Node,允许端点之间的双向对话。
cardano.storage
块和钱包数据的存储api。
cardano.block
块数据结构。
cardano.logic
默认节点的工作者和侦听器。
cardano.retrieve
使用Cardano SL Mainnet检索块数据。
cardano.wallet
根据形式规范实现钱包逻辑。
待办事项
- 钱包状态存储,一个简单的解决方案首先,希望类似哈斯克尔的酸性状态在最后。
- 块验证。
- 使用流api中继块数据。
- wallet cli应用程序。
- Wallet v1 API和用于SPV Light客户端的API。
- 群集钱包存储。