目录
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
感谢关注,感谢点赞!


![[数仓]三、离线数仓(Hive数仓系统)](https://i-blog.csdnimg.cn/direct/461673017c9e4a6cb779aa091c6ef778.png)

















