目录
1.编写目的
2.使用依赖
3.实现方法
3.1 Pynacl实现
3.2 ed25519实现
1.编写目的
在使用Python开发solana应用过程中,需要生成solana Wallet公私钥,以实现后续应用操作.这里将Python生成方法进行整理,方便日后的查阅,也能帮助到实现相关功能的朋友。
2.使用依赖
主要使用了以下3个Python依赖:
- PyNacl
- ed25519
- base58
安装方法:
# 安装pynacl
pip3 install pynacl
# 安装ed25519
pip install ed25519
# 安装base58
pip install base58
注意:这里pynacl是使用pip3安装,ed25519版本较早使用pip安装,即pyhton2用ed25519,pyhton3使用pynacl.base58作为公私钥格式转换的依赖.
3.实现方法
3.1 Pynacl实现
from nacl.signing import SigningKey
import base58
def generate_solana_wallet_nacl():
signing=SigningKey.generate()
public_key=base58.b58encode(signing.verify_key.encode()).decode('utf-8')
private_key=base58.b58encode(signing._signing_key).decode('utf-8')
print("public:{}".format(public_key))
print("private_key:{}".format(private_key))
这里生成的public_key即是公钥,也就是Wallet地址,private_key即为私钥,可以用于wallet导入.格式为Base58格式.
3.2 ed25519实现
import ed25519
import base58
def generate_solana_wallet():
private_key, public_key = ed25519.create_keypair()
private_key_base58 = base58.b58encode(private_key.to_bytes()).decode('utf-8')
public_key_base58 = base58.b58encode(public_key.to_bytes()).decode('utf-8')
return public_key_base58, private_key_base58
这里的public_key_base58即为公钥,private_key_base58即为私钥.格式为Base58
感谢关注,感谢点赞!