Myetherwallet

myetherwallet如何訪問區塊鏈?(技術上)

  • September 11, 2017

我有興趣重現 myetherwallet 中使用的一些功能,但不是金融功能,而是允許使用者基於錢包訪問某些詳細資訊。

我在 github 上查看了 myetherwallet,但我不明白它是如何工作的。

有人知道它如何基於私鑰訪問區塊鏈嗎?即區塊鏈上的塊、頭等查詢過程是什麼?是否有某種方法可以使用 sql 類型的訪問,例如

if walletaddress= "..." then return block-details.

MyEtherWallet 執行一個乙太坊節點,並在該節點上啟用 RPC。這允許客戶端 web3 庫連接到他們的節點,並請求餘額等資訊,或送出簽名交易。

更明智的是,他們使用了一個名為 ethereumjs-wallet 的庫,它允許您將私鑰轉換為地址(然後用於請求餘額),以及一個名為 ethereumjs-tx 的庫,它可以使用私鑰簽署原始交易。

它的核心是使用橢圓曲線加密技術對消息進行簽名。這是一種用於許多事情的方法,而不僅僅是乙太坊。最重要的是,你還有一層乙太坊的東西——比如乙太坊地址、乙太坊加密規範和格式等。

解鎖錢包的最佳選擇是 ethereum-js 錢包。從那裡開始,還有很多其他動人的部分:

手動建構交易(離線,而不是通過 geth/parity 中的帳戶):https ://github.com/ethereumjs/ethereumjs-tx

AWS 的東西:https ://github.com/MyEtherWallet/docker-geth-lb

API:https ://www.myetherapi.com/

Infura 的 API:https ://blog.infura.io/infrastructure-means-apis-introducing-the-infura-api-49f2951bb6ba

Etherscan 的 API:https ://etherscan.io/apis

由於 MEW 變得如此復雜,探索最早的 MEW 版本可能符合您的最大利益。你不應該在這個版本中使用程式碼,因為它已經過時了,但我發現從概念上講它已經幫助人們了解正在發生的事情:https ://github.com/kvhnuke/etherwallet/tree/mew1 .0

引用自:https://ethereum.stackexchange.com/questions/26140