您好,登錄后才能下訂單哦!
比原項目倉庫:
Github地址:https://github.com/Bytom/bytom
Gitee地址:https://gitee.com/BytomBlockchain/bytom
Bytom 使用的 密鑰類型為基于 ed25519 的 chainkd.XPub
bytom/crypto/ed25519/chainkd
首先適當修改代碼,添加一些打印輸出,使得我們更好的進行驗證。 如果只是想看 xpub ,而不關心 xprv(對于驗證導入導出助記詞功能來說已經夠了)的話可以跳過這一步,不必修改源碼 。
在 bytom/blockchain/pseudohsm/pseudohsm.go
中的
func (h *HSM) createKeyFromMnemonic(alias string, auth string, mnemonic string) (*XPub, error)
添加輸出打印 root XPub 對應的 私鑰 和 公鑰
func (h *HSM) createKeyFromMnemonic(alias string, auth string, mnemonic string) (*XPub, error) {
// Generate a Bip32 HD wallet for the mnemonic and a user supplied password
seed := mnem.NewSeed(mnemonic, "")
xprv, xpub, err := chainkd.NewXKeys(bytes.NewBuffer(seed))
if err != nil {
return nil, err
}
fmt.Println(hex.EncodeToString(xprv[:])) // Add info printing
fmt.Println(hex.EncodeToString(xpub[:])) // Add info printing
id := uuid.NewRandom()
key := &XKey{
ID: id,
KeyType: "bytom_kd",
XPub: xpub,
XPrv: xprv,
Alias: alias,
}
file := h.keyStore.JoinPath(keyFileName(key.ID.String()))
if err := h.keyStore.StoreKey(file, key, auth); err != nil {
return nil, errors.Wrap(err, "storing keys")
}
return &XPub{XPub: xpub, Alias: alias, File: file}, nil
}
因為 bytomd 目前 dashboard 錢包圖形界面還沒有助記詞相關功能,我們需要準備工具使用 POST 請求來使用。比如 curl 或者 postman 。
dashboard 目前還沒有 從 密鑰導出助記詞的功能,現有只是在創建密鑰時有助記詞相應輸出信息。可以修改源碼在查看密鑰時 打印對應助記詞。
因為只是測試,這里為了方便,直接查看在創建密鑰時返回的助記詞。
對 bytomd 發起 post 請求 /create-key
{
"alias": "create_key_test",
"password": "createkeytest",
"language": "en"
}
可以看到 響應中 顯示了 xpub 和 助記詞
由于修改了源碼,添加了打印信息,bytomd 命令行也打印出了相印的 xprv 和 xpub
如何通過導入助記詞恢復密鑰呢?
假設目前 已經有一個 xprv
50db5bfe21b08462972eadbce08ec92d078a45fa7a280d175a823f9e457faf447d1f501b69f895b830138fabc6f91e2b3b3c8df26642a34be4af27886b9134dc
對應的 助記詞為
pudding
room
business
river
pattern
box
snap
merit
unfold
speak
hat
task
發起 post 請求 /create-key
{
"alias": "nnemonic_test",
"password": "nnemonicnnemonic",
"nnemonic": "pudding room business river pattern box snap merit unfold speak hat task",
"language": "en"
}
返回相應:
bytomd 輸出
可以看到,恢復出來的 xprv 和 我們本來的 xprv 一致,驗證成功。
dashaboard 中也能見到我們恢復的 密鑰。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。