摘要:前言區塊鏈錢包分為兩類冷錢包和熱錢包。通俗的講冷錢包就是錢包存在本地,熱錢包則是存在服務端。本文主要對冷錢包進行分析以及一些相關業務功能的介紹。轉賬還涉及到礦工費用的計算,礦工費用,和換算關系收款生成相應的地址二維碼既可
前言
區塊鏈錢包分為兩類:冷錢包和熱錢包。通俗的講冷錢包就是錢包存在本地,熱錢包則是存在服務端。本文主要對冷錢包進行分析以及一些相關業務功能的介紹。相關插件:bip39(生成助記詞),ethereumjs-wallet(生成錢包,導入,導出),ethereumjs-tx(轉賬簽名),ethereumjs-util(ETH功能集成插件),cryptojs(加密)
正文我們知道區塊鏈錢包有幾個概念:助記詞、私鑰、地址、keyStore
這幾個關系如下:助記詞(單向=>)私鑰
私鑰(單向=>)地址
密碼+私鑰( 雙向<=>)keyStore
錢包業務功能創建錢包
導入錢包(助記詞導入,keyStore導入,私鑰導入)
錢包管理(導出私鑰,導出keyStore,修改密碼)
轉賬和收款
業務功能分析存在本地錢包加密前的數據格式
[{"wallet address": 加密私鑰(私鑰和密碼進行加密)+其他錢包信息},...]
創建錢包
創建錢包流程: 生成隨機助記詞 => 通過助記詞創建錢包=>錢包信息和加密明文(私鑰和密碼加密)AES加密存入localStorage
導入錢包
通過插件提供方法,根據助記詞|keyStore|私鑰,找到錢包信息(地址和私鑰)=>錢包信息和加密明文(私鑰和密碼加密)AES加密存入localStorage
錢包管理
錢包管理需要密碼驗證,由于本地存的是私鑰和密碼加密后的加密私鑰,解密需要私鑰和原密碼來解密,因此不能直接通過解密獲取原密碼。所以我們需要換一個思路來驗證,由前文的關系可知私鑰可以找到錢包地址,所以可以解密錢包的字符串,通過錢包地址獲取加密的錢包信息,再通過用戶輸入的密碼和加密私鑰解密獲取解密私鑰,再通過私鑰獲取地址,判斷用戶輸入的和原密碼解密后的私鑰獲取的地址是否一致。
密碼驗證流程:解密錢包明文 => 得到所有加密錢包[{"wallet address": 加密私鑰(錢包和密碼)},...] => 地址獲取當前加密錢包信息 => 通過用戶輸入的密碼和加密私鑰解密獲取解密的私鑰 => 通過解密私鑰去獲取地址 =>判斷地址和當前地址是否一致
轉賬和收款
轉賬涉及到交易的簽名,而ethereumjs-tx則提供相應的方法。轉賬還涉及到礦工費用的計算,礦工費用(gas) = gasPrice * gaslimit,gas和eth換算關系: 1eth = 1e9(gwei)
收款生成相應的地址二維碼既可
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/96948.html
摘要:帳號之間的比特幣支付通過,我們可以先轉比特幣給機器人,然后讓機器人轉幣給新用戶。下面的代碼,可以讀取比特幣錢包余額讀取的余額,來確認比特幣是不是轉成功了注意是新用戶的。 showImg(https://github.com/wenewzhang/mixin_labs-go-bot/raw/master/Bitcoin_go.jpg);我們已經創建過一個回復消息的機器人和一個能自動支付比...
摘要:下面的代碼,可以讀取比特幣錢包余額網內免手續費的,并且即時確認任何幣在內部的交易,都是無手續費的,并且立刻到賬。 基于Mixin Network的 Nodejs 比特幣開發教程: 創建比特幣錢包 showImg(https://segmentfault.com/img/remote/1460000018771566?w=1200&h=659);我們已經創建過一個回復消息的機器人和一個能...
摘要:下面的代碼,可以讀取比特幣錢包余額網內免手續費的,并且即時確認任何幣在內部的交易,都是無手續費的,并且立刻到賬。 showImg(https://segmentfault.com/img/bVboFVZ?w=1200&h=659);我們已經創建過一個回復消息的機器人和一個能自動支付比特幣的機器人. 通過本教程的學習,你可以學到如下內容 如何創建一個比特幣錢包. 如何讀取比特幣錢包的余...
閱讀 1508·2021-10-11 10:59
閱讀 1881·2021-09-09 11:36
閱讀 1393·2019-08-30 15:55
閱讀 1329·2019-08-29 11:20
閱讀 3064·2019-08-26 13:39
閱讀 1468·2019-08-26 13:37
閱讀 1960·2019-08-26 12:11
閱讀 1324·2019-08-23 14:28