主页 > imtoken官方app > 使用树莓派探索以太坊Part 1:环境搭建

使用树莓派探索以太坊Part 1:环境搭建

imtoken官方app 2023-04-21 05:34:37

在本系列文章的第一部分,我们将在 Raspberry Pi 3 Model B 上安装并运行以太坊区块链客户端。

为什么以太坊比比特币交易快_以太坊交易信息获取_以太坊币交易官方网站

毫无疑问,区块链绝对是当下的热门话题。 这在很大程度上是因为比特币和其他加密货币让许多人一夜暴富。 然而,区块链的应用并不局限于加密货币领域。 考虑到其去中心化和不可篡改的特点,区块链技术也可以用于物联网应用。 因此,除了加密货币和安全交易之外,以太坊平台还可以提供分布式计算平台。

在本文中,我们将分析以太坊架构,了解其核心思想和功能组件,最后在树莓派上安装相应的客户端软件。 需要声明的是,我不打算用它来挖矿,因为挖矿需要强大的GPU支持,但是树莓派只能搭建一个简单的实验沙箱,我们只是验证区块链技术可以应用到嵌入式平台。

以太坊 101

事不宜迟,这里是示例以太坊智能合约的源代码(来自 ethereum.org):

contract mortal {
    /* Define variable owner of the typeaddress */
    address owner;
    /* This function is executed atinitialization and sets the owner of the contract */
    function mortal() { owner = msg.sender; }
    /* Function to recover the funds on thecontract */
    function kill() { if (msg.sender == owner)selfdestruct(owner); }
}

以太坊交易信息获取_为什么以太坊比比特币交易快_以太坊币交易官方网站

contract greeter is mortal {    /* Define variable greeting of the typestring */    string greeting;    /* This runs when the contract is executed*/    function greeter(string _greeting) public {        greeting = _greeting;    }    /* Main function */    function greet() constant returns (string){        return greeting;    } }

以太坊交易信息获取_以太坊币交易官方网站_为什么以太坊比比特币交易快

区块链是一种分布式账本系统,通常通过对等网络进行管理,并且随着记录和区块成功添加到区块链网络而增长。 一个区块通常包含交易数据和时间戳,并通过哈希算法进行安全加密。 数据成功提交到区块链后,将不再修改。

以太坊平台有自己的加密货币,我们称之为以太币。 但它也为基于区块链技术的智能合约创建了一个去中心化平台。 智能合约对象中包含的代码函数可以在区块链中“生存”并与其他合约交互以做出决策和存储数据,或者将以太币发送给其他人。

智能合约以称为 Solidity(基于 JavaScript)的编程语言实现。 Solidity 编译器可以将智能合约编译成字节码(类似于 JavaScript、Python、Java 或 Android),然后使用以太坊虚拟机(EVM)执行。 需要注意的是以太坊交易信息获取,智能合约中的交易是有成本的以太坊交易信息获取,这个我们后面会讲到。

目前市场上有几种不同的以太坊客户端(基于Geth,用Go语言开发),有的可以挖以太坊,有的是独立的挖矿软件。 除了主要的以太坊区块链网络和矿池外,还有很多实验和测试网络,当然您也可以创建自己的私有区块链网络。

安装 Geth

以太坊交易信息获取_为什么以太坊比比特币交易快_以太坊币交易官方网站

假设我们现在已经安装了 Raspbian,我们需要将安装的软件包软件更新到最新版本:

$ sudo apt-get update
$ sudo apt-get dist-upgrade

当我第一次尝试编译 Ethereum 客户端时,内存不足,为这项内存密集型任务释放 RAM 的最佳方法是减少分配给 GPU 的内存量。 如果不需要图形桌面,可以使用命令行界面引导系统。

$ sudo raspi-config

以太坊币交易官方网站_为什么以太坊比比特币交易快_以太坊交易信息获取

接下来,安装相应的依赖项:

$ sudo apt-get install git golang libgmp3-dev

接下来从GitHub上获取Geth的官方源码(Go语言实现的以太坊官方源码),编译代码并将可执行程序复制到/usr/local/bin/。

以太坊交易信息获取_为什么以太坊比比特币交易快_以太坊币交易官方网站

$ mkdir src
$ cdsrc
$ gitclone -b release/1.7 https://github.com/ethereum/go-ethereum.git
$ cdgo-ethereum
$ make
$ sudo cp build/bin/geth /usr/local/bin/

创建一个帐户并进行测试

以太坊交易信息获取_以太坊币交易官方网站_为什么以太坊比比特币交易快

使用 Geth 创建一个新帐户:

$ geth account new

该程序然后创建一组新的加密密钥并使用密码来保护私钥的安全。 需要注意的是,如果您想使用该账户进行挖矿和交易,您需要确保您已经备份了您的密钥,并防止您的私钥被他人获取。

现在,我们需要运行节点。

以太坊币交易官方网站_为什么以太坊比比特币交易快_以太坊交易信息获取

$ geth --syncmode light --cache 64 --maxpeers 12

如果我们不带任何参数运行Geth,它会启动一个节点并尝试与整个公链主网同步数据,数据大小在50GB以上,并且会不断增长,因此不适合嵌入式计算机。 因此,我们将以轻量级同步模式运行节点,该模式仅获取块头信息。

为什么以太坊比比特币交易快_以太坊交易信息获取_以太坊币交易官方网站

按 CTRL+C 退出节点后,我们可以让它在设备启动时作为服务运行:

$ sudo vi /etc/systemd/system/geth@.service

然后添加以下代码:

[Unit]
Description=Ethereumdaemon
Requires=network.target
[Service]
Type=simple
User=%I
ExecStart=/usr/local/bin/geth--syncmode light --cache 64 --maxpeers 12
Restart=on-failure
[Install]
WantedBy=multi-user.target

为什么以太坊比比特币交易快_以太坊币交易官方网站_以太坊交易信息获取

保存文件,以下命令将允许以太坊节点以“pi”用户身份运行:

$ sudo systemctl enable geth@pi.service
$ sudo systemctl start geth@pi.service

为什么以太坊比比特币交易快_以太坊交易信息获取_以太坊币交易官方网站

接下来,我们可以使用以下命令绑定节点:

$ geth attach

这样我们就得到了一个交互式 JavaScript 控制台,我们可以在其中调用任何函数,例如:

>eth.accounts

该命令可以输出当前账户列表:

以太坊交易信息获取_为什么以太坊比比特币交易快_以太坊币交易官方网站

或者获取有关连接节点的信息:

>admin.peers

需要注意的是,轻量级客户端协议尚处于开发阶段,部分实验性功能可能无法完美支持。

总结

至此,我们已经安装了客户端软件,成功创建了账户,并开通了一个可通信的节点。 接下来,在本系列文章的第二部分,我们将搭建私有区块链网络,进行实际的交易活动。 请稍等,我们马上就到!

* 参考来源:rs-online,FB编辑Alpha_h4ck编译,转载请注明来自FreeBuf.COM

为什么以太坊比比特币交易快_以太坊币交易官方网站_以太坊交易信息获取