区块链学堂(第二课):以太坊基本概念+Geth 安装

2024-06-06 18:38

本文主要是介绍区块链学堂(第二课):以太坊基本概念+Geth 安装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在我研究以太坊技术的过程中,由于相关资料较少,因此走了较多的弯路。所以这里我们不会先介绍Solidity的语法结构,而会在接下来的第一阶段,从实战出发,陆续向大家介绍Geth、Browser-solidity、Mist这三大工具,并在过程中不断讲解以太坊的基本概念。

通过这些工具的实际使用,以及对以太坊的基本概念不断加深理解,对于第二阶段学习solidity语言才能事半功倍(毕竟语言学习是很快的,尤其是一门类js语言来说)

以太坊

以太坊基本概念

  • 以太坊,最简单的说法就是:区块链技术+智能合约。
  • 以太坊和区块链技术一样,有Transaction,Block,账户与账户之间的关系需要用Transaction来执行,任何Transaction都需要有通过挖矿的block来产生。
  • 以太坊和原来的比特币技术不同的是
    1. 实现了基于Solidity语言的智能合约,并将智能合约看做一种特殊的账户,从而使得在智能合约上也可以实现具体的方法
    2. 实现了智能合约能落地执行的EVM(以太坊虚拟机),通过以太坊虚拟机,从而将solidity这样的类js的代码变成了可以在去区块链上执行的加密代码。
    3. 不同于比特币技术,在以太坊的transaction都需要用到gas,一份合约或者一次交易的gas是固定的(取决于代码大小和复杂度),而gas的价格则由以太坊中的oracle来决定。
    4. 以太坊同时还构建了较完整的、开源的生态系统,不仅有底层的geth、编程的solidity、合约在线浏览器browser-solidity、合约钱包Mist/wallet、以太坊的前端开发框架Truffle、各种各样的开源DApp等等,方便大家快速上手,并开发出适合落地的区块链应用。

Geth工具介绍

  • Geth工具是Go Ethereum, 是以太坊的官方客户端(Go语言实现)
  • 通过Geth的一些基本命令,可以很方便的创建出一个以太坊的私有链条。
geth --datadir "./" init genesis.json
geth --datadir "./" --nodiscover console 2>>geth.log
  • Geth的命令行中包含了大多数的以太坊的命令,包括账户新建,账户之间的以太币转移,挖矿,获取余额,部署以太坊合约等。
  • 当然Geth的缺点也很明显,Geth还是偏底层的内容,很多操作需要较多较复杂的输入。因此我们将会介绍Browser-solidity

Browser-solidity

  • 这是以太坊智能合约的浏览器编译器,直接访问网站即可,当然如果觉得速度太慢不稳定,也可以自己搭建。
  • Browser-solidity 因为运行在内存中,因此速度很快,对于一些简单的功能,例如四则运算等,开发调试变得非常容易。
  • Browser-solidity 中我们将会向大家重复了一些基本的概念,如transaction,gas,account等。
  • Browser-solidity的缺点也很明显,那就是因为运行在内存中,所以对于涉及账户的合约开发、调试&测试,相当的无力。因此接下来向大家介绍了Mist这个官方钱包工具

Mist

  • Mist是以太坊的官方钱包,他既可以连接生产网络、测试网络,更加可以通过设置参数的方式,连接我们自己的私有网络
  • Mist在通过geth.ipc文件连接后,就和Geth所建立的网络完全契合在一起了,在Mist上部署的合约,实际上也就是部署在了geth网络上。geth网络上新建账号,也可以在Mist这个工具上看到。
  • 通过Mist,我们向大家更详细的讲解了以太坊的核心概念,包括:区块、Transaction、Gas、账户、合约、合约中的构造函数,变量以及方法。

通过Geth、Browser-solidity、Mist 三个工具的介绍,给我们提供了开发、调试和测试我们智能合约的很好的利器。

在接下来的文章中,我们将正式向大家分别介绍三大工具 Geth/Browser-solidity/Mist

首先介绍以太坊的基础,Geth客户端

Geth是什么?

Geth 又名Go Ethereum. 是以太坊协议的三种实现之一,由Go语言开发,完全开源的项目。Geth 可以被安装在很多操作系统上,包括Windows、Linux、Mac的OSX、Android或者IOS系统

Geth官网:https://geth.ethereum.org/
Geth的Github地址:https://github.com/ethereum/go-ethereum

Geth能干什么

Geth是以太坊协议的具体落地实现,通过Geth,你可以实现以太坊的各种功能,如账户的新建编辑删除,开启挖矿,ether币的转移,智能合约的部署和执行等等

Geth安装

安装文档:https://ethereum.github.io/go-ethereum/install/

这里演示在MacBook上的安装,Linux&Windows系统的人请参照文档。

brew tap ethereum/ethereum
brew install ethereum

安装截图如下:

安装完成后检查

输入 geth version,检查是否安装成功

如果如图所示,出现了Geth的版本号,那么恭喜你,Geth安装成功!

下篇文章将开始讲解,如何从0开始搭建自己的私有链!

这篇关于区块链学堂(第二课):以太坊基本概念+Geth 安装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1036914

相关文章

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

mac安装redis全过程

《mac安装redis全过程》文章内容主要介绍了如何从官网下载指定版本的Redis,以及如何在自定义目录下安装和启动Redis,还提到了如何修改Redis的密码和配置文件,以及使用RedisInsig... 目录MAC安装Redis安装启动redis 配置redis 常用命令总结mac安装redis官网下

如何安装 Ubuntu 24.04 LTS 桌面版或服务器? Ubuntu安装指南

《如何安装Ubuntu24.04LTS桌面版或服务器?Ubuntu安装指南》对于我们程序员来说,有一个好用的操作系统、好的编程环境也是很重要,如何安装Ubuntu24.04LTS桌面... Ubuntu 24.04 LTS,代号 Noble NumBAT,于 2024 年 4 月 25 日正式发布,引入了众

如何安装HWE内核? Ubuntu安装hwe内核解决硬件太新的问题

《如何安装HWE内核?Ubuntu安装hwe内核解决硬件太新的问题》今天的主角就是hwe内核(hardwareenablementkernel),一般安装的Ubuntu都是初始内核,不能很好地支... 对于追求系统稳定性,又想充分利用最新硬件特性的 Ubuntu 用户来说,HWEXBQgUbdlna(Har

python中poetry安装依赖

《python中poetry安装依赖》本文主要介绍了Poetry工具及其在Python项目中的安装和使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前言1. 为什么pip install poetry 会造成依赖冲突1.1 全局环境依赖混淆:1

windows端python版本管理工具pyenv-win安装使用

《windows端python版本管理工具pyenv-win安装使用》:本文主要介绍如何通过git方式下载和配置pyenv-win,包括下载、克隆仓库、配置环境变量等步骤,同时还详细介绍了如何使用... 目录pyenv-win 下载配置环境变量使用 pyenv-win 管理 python 版本一、安装 和

Linux下MySQL8.0.26安装教程

《Linux下MySQL8.0.26安装教程》文章详细介绍了如何在Linux系统上安装和配置MySQL,包括下载、解压、安装依赖、启动服务、获取默认密码、设置密码、支持远程登录以及创建表,感兴趣的朋友... 目录1.找到官网下载位置1.访问mysql存档2.下载社区版3.百度网盘中2.linux安装配置1.

Kibana的安装和配置全过程

《Kibana的安装和配置全过程》Kibana是一个开源的数据分析和可视化平台,它与Elasticsearch紧密集成,提供了一个直观的Web界面,使您可以快速地搜索、分析和可视化数据,在本文中,我们... 目录Kibana的安装和配置1.安装Java运行环境2.下载Kibana3.解压缩Kibana4.配

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7