技术原理

以太坊教程-深入了解以太坊!

成为一个认证的专业以太坊教程:

在这个以太坊教程博客中,我将解释以太坊架构的内部工作,我还将通过一个简单的智能合约向您展示以太坊的实现。

我将以太坊视为一个可编程的区块链,将服务于大多数B2C企业未来。以太坊允许开发者自由地创建复杂的模型在区块链上执行,而不是将它们限制在诸如比特币区块链之类的预定义操作上。

通过这种方法,以太坊已经变成了一个平台,供过多分散的应用程序和组织使用,包括但不是仅限于加密货币。

我将通过运行这个“以太坊教程”博客详尽地介绍各种主题。这些主题包括:

以太坊账户以太坊虚拟机以太坊网络以太坊和天然气以太坊采矿

您可以通过这段以太坊教程的录音,在那里我们的导师详细解释了主题与现实世界的问题和项目,将帮助您理解这一概念更好的。

以太坊教程|以太坊智能合约| Edureka

以太坊教程:以太坊账户

以太坊网络有两种账户,即:

外部账户合约账户

这些账户,无论是外部账户还是合约账户,都被称为“状态对象”,组成以太坊网络。每个状态对象都有一个定义良好的状态。对于外部帐户,状态由帐户余额组成,而对于契约帐户,状态由内存存储和余额定义。

我将把外部帐户简单地称为帐户。这些帐户由网络的外部代理(包括每个普通用户、矿工、自动代理等)表示。

这些帐户通常通过RSA等公钥密码算法进行控制。外部账户的主要目的是充当用户与以太坊区块链交互的媒介。另一方面,

合约账户是位于区块链上特定地址的代码集合。这些契约由外部帐户调用,或由其他契约通过特定的调用操作函数调用。这些契约是用高级脚本语言编写的,如Solidity、Serpent或LLL。位于以太坊区块链上的每个合约都以一种称为EVM(以太坊虚拟机)字节码的特定格式存储,该字节码是以太坊特定的二进制格式。既然我已经告诉过你关于EVM字节码的事情,那么我现在解释EVM才是公平的。

以太坊教程:以太坊虚拟机

以太坊,以一种粗俗的方式,定义了一组通用的协议,这些协议已经成为去中心化应用程序开发的支柱。以太坊虚拟机就位于这一点的核心。下图解释了体系结构:

Ethereum Architecture - Ethereum Tutorial - Edureka

需要注意的是,以太坊虚拟机不仅是完全沙盒,而且是完全隔离的。这意味着当前在EVM上运行的代码不能访问网络或文件系统,并且可以节省地访问其他契约。现在我们已经了解了平台的核心,让我们更深入地了解网络节点

以太坊教程:以太坊网络

以太坊网络是一个公共区块链网络。它构成了在网络上运行的所有分散的对等应用程序和组织的基础。网络由两种类型的节点组成,即全节点和轻节点。

全节点包含自genesis块以来的整个事务历史。它们是区块链网络完整性的充分证明。完整节点必须包含根据以太坊规范设置的规则验证的每个事务另一方面,

轻量级节点只包含整个区块链的一个子集。这些类型的节点大多用于电子钱包中,电子钱包本质上必须轻量化,因此整个区块链不能存储在这些节点上。相反,这些节点不验证每个块或事务,并且可能没有当前区块链状态的副本。它们依赖于完整的节点来为它们提供缺少的细节(或者只是缺少特定的功能)。光节点的优点是,它们可以更快地启动和运行,可以在计算/内存受限的设备上运行,并且不会占用几乎相同的存储空间。每个公共区块链都有一个附加的货币。以太坊也不例外。让我们深入了解以太坊的加密货币。

以太坊教程:以太和气体

以太是用于支付以太坊网络上交易的加密货币的名称。除了支付一般交易和服务的费用外,Ether还用于购买天然气,而天然气又用于支付EVM内的计算费用。

Ether是公制单位,有许多有助于准确支付交易和天然气的面额。最小的面额,也就是一个基本单位,叫做魏。面额及其具体名称见下表:

单位Wei值Wei Wei 1 Wei 1 Kwei 1e3 Wei 1000 Mwei 1e6 Wei 1000000 Gwei 1e9 Wei 1000000000微醚1e12 Wei 1000000000微醚1e15 Wei 1000000000醚1e18 Wei 1000000000”如前所述,我们知道EVM负责运行部署在其网络上的代码。那么,是什么阻止人们在EVM上运行无限循环并完全重载其内存呢?这就是Gas的概念所在。

Gas被用作支付网络计算资源的度量。网络上的每个合同都有一个设置的最大Gas量,它可以用于计算。这被称为“天然气限额”其他相关天然气术语如下:

天然气价格:这是指天然气在以太等代币及其其他面额方面的成本。为了稳定天然气的价值,天然气价格是一个浮动值,如果代币或货币的成本波动,天然气价格会发生变化,以保持相同的真实价格价值。天然气费:这实际上是运行特定交易或程序(称为合同)所需支付的天然气量。”

“因此,如果有人试图运行一段永远运行的代码,合同最终将超过其气体限制,调用合同的整个事务将回滚到以前的状态。

既然我们知道了货币,让我们看看生成新货币的过程。

以太坊教程:挖掘

以太坊,就像其他公共区块链技术一样,通过基于激励的模型确保安全。这叫做工作证明机制。下图显示了以太坊采矿的工作原理:

Ethreum Mining - Ethereum Tutorial - Edureka

从更技术的角度来看,使用的工作证明算法称为Ethash,这是一个受Dagger Hashimoto算法启发的哈希算法。

现在我们已经看到了以太坊的工作架构并讨论了它的基本元素,让我们来看看现实世界中的问题和以太坊解决问题的方法。

以太坊教程:分散的众筹用例

问题陈述:一个好的“想法”并不是当今世界成功创业的一切。实施一个想法需要大量的资金和努力。这就是像“Kickstarter”这样的组织出现的地方。他们提供项目所需的公众曝光,为他们的项目捐款,使其运行,但这种动机的集中架构有其缺点,主要是在奖励的处理方式。由于所有的决策都是由中央集权机构做出的,所以系统很容易出现诸如

之类的规则,任何错过了该活动不能再进入任何改变主意的捐赠者不能退出

方法:

我们采取分散的方法来解决问题,如下图所示:

Crowdfunding - Ethereum Tutorial - Edureka

解决方案:

这里是上述问题陈述的可靠智能合约。

布拉格坚固度^0.4.16;接口令牌{}合同众包{向公众受益人致辞;公共资金目标;公开截止日期;公开价格;映射(地址=>uint256)公共平衡;bool crowdsaleClosed=错误;事件目标已处理(地址收件人,未处理的单元总数);事件资金转移(地址支持、单位金额、布尔分配);/***构造函数*设置所有者功能性大众销售(uint fundingGoalInEthers;//要筹集的目标金额uint durationInMinutes;//给定时间address addressOfTokenUsedAsReward;//token address受益人=如果成功发送到;fundingGoal=fundingGoalInEthers*1乙醚;价格=乙醚代币成本*1乙醚;}/****/需要(!众售关闭);平衡[消息发送者] =金额;代币奖励.transfer(消息发送者,金额/价格);}修饰符afterDeadline(){if(现在=资金目标){目标培训(受益人,未培训);}}/****检查是否达到了目标或时间限制,如果达到了,则检查是否达到了融资目标,*将全部金额发送给受益人。如果没有达到目标,每个参与者都可以退出*他们贡献的金额。函数safedrawing()在截止日期之后{uint amount=余额[消息发送者];如果(金额>0){资金转移(消息发送者,金额,错误);平衡[消息发送者]=金额;}}如果(资金分配和受益人==消息发送者) {资金转移(受益人,未经处理,虚假);}其他{//如果我们不能把资金交给受益人,就打开资金余额}}}

如果您对学习solidity感兴趣,请访问我们的solidity编程博客,该博客用于开发个性化智能合约。

如果您希望学习区块链并在区块链技术领域建立职业生涯,然后查看我们的区块链认证培训,该培训包括讲师指导的现场培训和实际项目体验。该培训将帮助您深入了解区块链,并帮助您掌握该主题。

有问题要问我们吗?请在评论部分提到它,我们会尽快给您回复

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片
人工智能培训3到猎维科技 投稿者
我还没有学会写个人说明!
最近文章
  • * 没有更多文章了
  • 热门搜索

    分类目录