以太坊钱包是你通往以太坊系统的门户。它拥有你的密钥,并且可以代表你创建和广播交易。选择一个以太坊钱包可能很困难,因为有很多不同功能和设计选择。有些更适合初学者,有些更适合专家。即使你现在选择一个你喜欢的,你可能会决定稍后切换到另一个钱包。以太坊本身在不断变化,“最好”的钱包往往是适应它们的。
别担心!如果你选择一个钱包而不喜欢它的工作方式,那么你可以很容易地更换钱包。你只需进行一项交易,即将资金从旧钱包发送到新钱包,或者通过导出和导入私钥来移动密钥。
首先,我们将选择三种不同类型的钱包作为整本书的示例:移动钱包,桌面钱包和基于网络的钱包。我们选择了这三款钱包,因为它们代表了广泛的复杂性和功能。然而,选择这些钱包并不是对其质量或安全性的认可。他们只是示范和测试。
起始钱包:
MetaMask
MetaMask是一款浏览器扩展钱包,可在你的浏览器(Chrome,Firefox,Opera或Brave Browser)中运行。它易于使用且便于测试,因为它可以连接到各种以太坊节点和测试区块链(请参阅“testnets”)。
Jaxx
Jaxx是一款多平台和多币种钱包,可在各种操作系统上运行,包括Android,iOS,Windows,Mac和Linux。对于新用户来说,它通常是一个不错的选择,因为它的设计简单易用。
MyEtherWallet (MEW)
MyEtherWallet是一款基于网络的钱包,可在任何浏览器中运行。它具有多个复杂的功能,我们将在许多示例中探讨这些功能。
Emerald Wallet
Emerald钱包设计用于以太坊经典区块链,但与其他以太坊区块链兼容。它是一款开源桌面应用程序,适用于Windows,Mac和Linux。Emerald钱包可以运行一个完整的节点或连接到一个公共的远程节点,工作在“轻量”模式下。它还有一个配套工具来在命令行中执行所有操作。
我们将首先在桌面上安装MetaMask
前提:可正常访问谷歌浏览器
安装 MetaMask
打开Google Chrome浏览器并导航至:
https://chrome.google.com/webstore/category/extensions
搜索“MetaMask”并点击狐狸的标志。你应该看到这样的扩展的详细信息页面:
配置好进入钱包首页
你的帐户页面会显示你帐户的名称(默认情况下为“Account 1”),以太坊地址(示例中为0x9E713 …)以及彩色图标,以帮助你将此帐户与其他帐户区分开来。在帐户页面的顶部,你可以看到你当前正在使用哪个以太坊网络(示例中的“主网络”)。
恭喜!你已经建立了你的第一个以太坊钱包!
切换网络
正如你在MetaMask帐户页面上所看到的,你可以在多个以太坊网络中进行选择。默认情况下,MetaMask将尝试连接到“主网络”。其他选择是公共测试网,你选择的任何以太坊节点或在你自己的计算机上运行私有区块链的节点(本地主机):
新增钱包并没有链接任务网络
查看网络:
Ethereum Network
主要的,公开的以太坊区块链。真正的ETH,真正的价值,真正的后果。
你的MetaMask钱包在连接的所有网络上使用相同的私钥和以太坊地址。但是,每个以太坊网络上的以太坊地址余额将有所不同。例如,你的密钥可以控制Ropsten上的以太和合约,但不能控制主网上的。
更多网络选择
外部所有账户(EOAs)和合约
我们在MetaMask钱包中创建的账户类型称为 Externally Owned Account(EOA) 。外部所有账户是那些拥有私人密钥的账户,它控制对资金或合约的访问。现在,你可能猜测还有另一种帐户,_合约_帐户。合约账户由以太坊区块链记录,由EVM执行的软件程序的逻辑所拥有(和控制)。
将来,所有以太坊钱包可能会作为以太坊合约运行,模糊了外部所有账户和合约账户之间的区别。但是永远保持的重要区别在于:人们通过EOA做出决定,而软件通过合约做出决定。
合约有一个地址,就像EOAs(钱包)一样。合约可以发送和接收ether,就像钱包一样。当交易目的地是合约地址时,它会导致该合约在EVM中_运行_,并将交易作为其输入。
除了ether之外,交易还可以包含_数据_,用于指示合约中要运行的特定方法以及传递给该方法的参数。通过这种方式,交易通过合约_调用_方法。最后,合约可以产生调用其他合约的交易,建立复杂的执行路径。其中一个典型的用法是合约A调用合约B,以便在合约A的用户之间保持共享状态。