摘要:獲取密鑰對應助記詞目前還沒有從密鑰導出助記詞的功能,現(xiàn)有只是在創(chuàng)建密鑰時有助記詞相應輸出信息。中也能見到我們恢復的密鑰。
比原項目倉庫:
Github地址:https://github.com/Bytom/bytom
Gitee地址:https://gitee.com/BytomBlockc...
背景知識Bytom 使用的 密鑰類型為基于 ed25519 的 chainkd.XPub
代碼見 bytom/crypto/ed25519/chainkd
文檔見 https://chain.com/docs/1.2/pr...`
預備 代碼修改首先適當修改代碼,添加一些打印輸出,使得我們更好的進行驗證。 如果只是想看 xpub ,而不關(guān)心 xprv(對于驗證導入導出助記詞功能來說已經(jīng)夠了)的話可以跳過這一步,不必修改源碼 。
在 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 錢包圖形界面還沒有助記詞相關(guān)功能,我們需要準備工具使用 POST 請求來使用。比如 curl 或者 postman 。
獲取密鑰對應助記詞dashboard 目前還沒有 從 密鑰導出助記詞的功能,現(xiàn)有只是在創(chuàng)建密鑰時有助記詞相應輸出信息??梢孕薷脑创a在查看密鑰時 打印對應助記詞。
因為只是測試,這里為了方便,直接查看在創(chuàng)建密鑰時返回的助記詞。
對 bytomd 發(fā)起 post 請求 /create-key
{ "alias": "create_key_test", "password": "createkeytest", "language": "en" }
可以看到 響應中 顯示了 xpub 和 助記詞
由于修改了源碼,添加了打印信息,bytomd 命令行也打印出了相印的 xprv 和 xpub
步驟如何通過導入助記詞恢復密鑰呢?
假設(shè)目前 已經(jīng)有一個 xprv
50db5bfe21b08462972eadbce08ec92d078a45fa7a280d175a823f9e457faf447d1f501b69f895b830138fabc6f91e2b3b3c8df26642a34be4af27886b9134dc
對應的 助記詞為
pudding room business river pattern box snap merit unfold speak hat task
發(fā)起 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 中也能見到我們恢復的 密鑰。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/24328.html
摘要:本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接理解開發(fā)錢包涉及的原文已更新,請讀者前往原文閱讀如果你還在被錢包搞的一頭霧水,來看看這邊文章吧。所以我們要開發(fā)以太坊錢包同樣需要對比特幣的錢包提案有所了解。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:理解開發(fā)HD錢包涉及的BIP32、BIP44、BIP39原文已更新,請讀者前往原文閱讀 如果你還在被HD錢包、BIP32、BIP44、BIP39搞的一頭霧水...
摘要:本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接理解開發(fā)錢包涉及的原文已更新,請讀者前往原文閱讀如果你還在被錢包搞的一頭霧水,來看看這邊文章吧。所以我們要開發(fā)以太坊錢包同樣需要對比特幣的錢包提案有所了解。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:理解開發(fā)HD錢包涉及的BIP32、BIP44、BIP39原文已更新,請讀者前往原文閱讀 如果你還在被HD錢包、BIP32、BIP44、BIP39搞的一頭霧水...
摘要:錢包概述中文可以翻譯為分層錢包,錢包可以在不需要私鑰情況下運用橢圓曲線算法生成大量公鑰。概念是由提出,解決難以抄寫記憶問題,規(guī)范各個幣種路徑規(guī)范達成業(yè)界共識。這個規(guī)范的目的是設(shè)定一個分層錢包標準,能在不通客戶之間交換。 前序:相信各位區(qū)塊鏈大佬,對公鑰和私鑰概念已經(jīng)爛熟于心,對私鑰重要性也諱莫如深。私鑰可以給交易簽名,有了私鑰就有了全部權(quán)限,但原始私鑰沒什么規(guī)律可循,特別不放記憶轉(zhuǎn)移,...
摘要:錢包功能一個錢包通常主要包含的功能有賬號管理主要是私鑰的管理創(chuàng)建賬號賬號導入導出賬號信息展示如以太幣余額代幣余額。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:[使用 ethers.js 開發(fā)以太坊 Web 錢包 1 - 創(chuàng)建錢包賬號)](https://learnblockchain.cn/20...,請讀者前往原文閱讀 以太坊去中心化網(wǎng)頁錢包開發(fā)系列,將從零開始開發(fā)出一個可以實際使用的錢...
摘要:目前,新網(wǎng)頁錢包的設(shè)計工作已基本完成,目前已設(shè)計個頁面,隨后的幾天將向社區(qū)征集建議。目前的設(shè)計,不包括正在同步開發(fā)的賽事眾籌功能,等主網(wǎng)賽事眾籌功能上線以后,將進行相應前端的開發(fā)。 目前,SEER新網(wǎng)頁錢包的UI設(shè)計工作已基本完成,目前已設(shè)計96個頁面,隨后的幾天將向社區(qū)征集建議。 https://org.modao.cc/app/2da4... 目前的UI設(shè)計,不包括正在同步開發(fā)的賽...
閱讀 1858·2021-11-11 16:55
閱讀 2656·2021-08-27 13:11
閱讀 3696·2019-08-30 15:53
閱讀 2363·2019-08-30 15:44
閱讀 1480·2019-08-30 11:20
閱讀 1103·2019-08-30 10:55
閱讀 992·2019-08-29 18:40
閱讀 3120·2019-08-29 16:13