从种子中获取密钥对
Get keypair from seed
我的服务器上有 waves 全节点。
使用 REST API 我生成了一些地址(比如 POST /addresses)。
使用 REST API 我可以获得每个地址的编码种子,例如
GET /addresses/seed/<address>
{
"address" : "address",
"seed" : "seed_value"
}
但是要从这些地址汇款,我需要相应的私钥。
那我怎样才能得到它?
好的,正如这个线程中的结果 - https://forum.wavesplatform.com/t/question-about-addresses-endpoint/7752,每个地址都是使用相同的种子和前置字节数组生成的(例如:对于第一个地址 - [0x00, 0x00, 0x00, 0x00] ).
每次创建地址后,Bytesarray 递增。
因此,不得不使用 wallet/seed
的种子,而不是使用 addresses/seed/<address>
的种子
这个在 python(使用 pywaves)
import axolotl_curve25519 as curve
import base58
import hashlib
import sha3
import pyblake2
import struct
import pywaves
def hashChain(noncedSecret):
b = pyblake2.blake2b(noncedSecret, digest_size=32).digest()
return sha3.keccak_256(b).digest()
seed = "value from /wallet/seed"
nonce = struct.pack(">L", 40)
seedHash = hashChain(nonce + base58.b58decode(seed))
accountSeedHash = hashlib.sha256(seedHash).digest()
private_key = base58.b58encode(curve.generatePrivateKey(accountSeedHash))
address = pywaves.Address(privateKey=private_key)
P.S。我很确定不明白地址的种子必须是 interpreted/used "in the right way",但我没有找到与此相关的任何文档。如果有人知道如何使用它 - 我将不胜感激。
我的服务器上有 waves 全节点。
使用 REST API 我生成了一些地址(比如 POST /addresses)。 使用 REST API 我可以获得每个地址的编码种子,例如
GET /addresses/seed/<address>
{
"address" : "address",
"seed" : "seed_value"
}
但是要从这些地址汇款,我需要相应的私钥。 那我怎样才能得到它?
好的,正如这个线程中的结果 - https://forum.wavesplatform.com/t/question-about-addresses-endpoint/7752,每个地址都是使用相同的种子和前置字节数组生成的(例如:对于第一个地址 - [0x00, 0x00, 0x00, 0x00] ).
每次创建地址后,Bytesarray 递增。
因此,不得不使用 wallet/seed
addresses/seed/<address>
的种子
这个在 python(使用 pywaves)
import axolotl_curve25519 as curve
import base58
import hashlib
import sha3
import pyblake2
import struct
import pywaves
def hashChain(noncedSecret):
b = pyblake2.blake2b(noncedSecret, digest_size=32).digest()
return sha3.keccak_256(b).digest()
seed = "value from /wallet/seed"
nonce = struct.pack(">L", 40)
seedHash = hashChain(nonce + base58.b58decode(seed))
accountSeedHash = hashlib.sha256(seedHash).digest()
private_key = base58.b58encode(curve.generatePrivateKey(accountSeedHash))
address = pywaves.Address(privateKey=private_key)
P.S。我很确定不明白地址的种子必须是 interpreted/used "in the right way",但我没有找到与此相关的任何文档。如果有人知道如何使用它 - 我将不胜感激。