區塊鏈開發(十一)以太坊賬戶管理
賬戶在以太坊中發揮著中心作用。共有兩種賬戶型別:外部賬戶(EOAs)和合約賬戶。我們這裡重點講一下外部賬戶,以下會簡稱為賬戶。合約賬戶簡稱為合約, 在合約章節具體討論。把外部賬戶和合約賬戶都歸入到帳戶的一般概念是合理的,因為這些實體都是所謂的狀態物件。這些實體都有狀態:賬戶有餘額,合約既有餘額也有合約儲存。所有賬戶的狀態正是以太坊網路的狀態,以太坊網路和每個區塊一起更新,網路需要達成關於以太坊的共識。對於使用者通過交易和以太坊區塊鏈互動來說,賬戶是必不可少的。
如果我們把以太坊限制為只有外部賬戶,只允許外部賬戶之間進行交易,我們就會進入到“代幣”系統,“代幣”系統不如比特幣本身有力,只能用於轉移以太幣。
賬戶代表著外部代理人(例如人物角色,挖礦節點 ,或是自動代理人)的身份。賬戶運用公鑰加密影象來簽署交易以便以太坊虛擬機器可以安全地驗證交易傳送者身份。
鑰匙檔案
每個賬戶都由一對鑰匙定義,一個私鑰和一個公鑰。 賬戶以地址為索引,地址由公鑰衍生而來,取公鑰的最後 20個位元組。每對私鑰 /地址都編碼在一個鑰匙檔案裡。鑰匙檔案是JSON文字檔案,可以用任何文字編輯器開啟和瀏覽。鑰匙檔案的關鍵部分,賬戶私鑰,通常用你建立帳戶時設定的密碼進行加密。鑰匙檔案可以在以太坊節點資料目錄的keystore子目錄下找到。確保經常給鑰匙檔案備份!檢視備份和恢復賬號章節瞭解更多。建立鑰匙和建立帳戶是一樣的。
不必告訴任何人你的操作。
不必和區塊鏈同步。
不必執行客戶端。
甚至不必連線到網路。
當然新賬戶不包含任何以太幣。但它將會是你的,你大可放心,沒有你的鑰匙和密碼,沒有人能進入。
轉換整個目錄或任何以太坊節點之間的個人鑰匙檔案都是安全的。
警告:請注意萬一你從一個不同的節點向另一個節點新增鑰匙檔案, 賬戶的順序可能發生改變。確保不要回復或改變手稿中的索引或程式碼片段。
建立賬號
警告:記住密碼並“備份鑰匙檔案<backup-and-restore-accounts>”。為了從賬號傳送交易,包括髮送以太幣,你必須同時有鑰匙檔案和密碼。確保鑰匙檔案有個備份並牢記密碼,儘可能安全地儲存它們。這裡沒有逃亡路徑,如果鑰匙檔案丟失或忘記密碼,就會丟失所有的以太幣。沒有密碼不可能進入賬號,也沒有忘記密碼選項。所以一定不要忘記密碼。
使用geth account new
一旦安裝了geth客戶端,建立賬號就只是在終端執行 geth account new指令的問題了。
注意不必執行geth客戶端或者和區塊鏈同步來使用geth account指令。
使用 Mist 以太坊錢包
對於相反的命令列,現在有一個基於GUI的選項可以用來建立賬號:“官方”Mist以太坊錢包。 Mist以太坊錢包,和它的父專案Mist, 是在以太坊基金會的贊助下開發,因此是“官方”地位。錢包應用有Linux, Mac OS X和Windows可用的版本。
警告:Mist錢包是試用軟體,使用需風險自擔。
用GUI Mist以太坊錢包建立賬號再容易不過了。事實上,第一個賬號在應用安裝期間就創建出來了。
一、根據你的操作程式下載錢包應用最新版本。由於你實際上會執行一個完整的geth節點,開啟錢包應用就會開始同步複製你電腦上的整個以太坊區塊鏈。
二、 解鎖下載的資料夾,執行以太坊錢包可執行檔案。
三、 等待區塊鏈完全同步,按照螢幕上的說明操作,第一個賬號就創建出來了。
四、第一次登入Mist 以太坊錢包,你會看到自己在安裝過程中建立的賬號。它會被預設命名為主賬號(以太庫)
五、再另外建立賬號很容易;只需點選應用主介面上的新增賬號,輸入所需的密碼即可。
注意: Mist錢包仍在開發中,以上列出的具體步驟可能會隨著更新有所變更。