当前位置:   article > 正文

go语言--区块链学习(三)_go区块链合约

go区块链合约

温馨跳转链接:模块一:go语言–区块链学习(一)-CSDN博客
温馨跳转链接:模块二:go语言–区块链学习(二)-CSDN博客

模块三:以太坊

想要深入学习智能合约的小伙伴,一定不要错过的视频:

javascript版:(32 小时最全课程)区块链,智能合约 & 全栈 Web3 开发_哔哩哔哩_bilibili

python版:【公开课】Python区块链开发教程 Solidity web3 区块链和智能合约(中英字幕)_哔哩哔哩_bilibili

3.1 智能合约

3.1.1 普通合约

普通合约是指双方或多方在法律框架下,通过书面形式或口头协议达成的一种约定。它是一种约束双方行为的法律文件,规定了合同期限、支付方式、责任承担、违约处理等细节问题。普通合约通常需要法院或仲裁机构的介入来解决争议。

3.1.1.1 特点
  1. 法律约束力:普通合约是在法律框架下达成的约定,具有法律约束力。
  2. 需要履行:普通合约规定了双方的权利和义务,需要各方按照约定履行。
  3. 可变性:普通合约可以通过双方协商修改,但必须符合法律规定。
  4. 争议解决:普通合约在履行过程中可能出现争议,需要法院或仲裁机构介入解决。

普通合约广泛应用于商业活动、房地产交易、雇佣关系等各个领域。它为各方提供了一种明确的约定,保障了各方的权益,并促进了交易的顺利进行。

3.1.2 智能合约

智能合约简单来说就是部署在去中心化区块链上的一个合约或者一组指令,当这个合约或者这组指令被部署以后,它就不能被改变了,它会自动执行,每个人都可以看到合约中的条款。更深层次的理解是,这些代码会被去中心化地执行。

3.1.2.1 特点
  1. 自动执行:一旦满足了预设的条件,智能合约将自动执行相关的操作,无需人为干预。
  2. 透明性:智能合约的代码和执行结果都会被保存在区块链上,任何人都可以查看和验证。
  3. 不可篡改性:一旦部署到区块链上,智能合约的代码是不可更改的,确保了交易的可信性和安全性。
  4. 去中心化:智能合约在区块链网络上的节点上执行,没有单一的控制机构,参与者共同验证和维护合约的执行。

智能合约可以应用于各种领域,如数字货币交易、供应链管理、投票系统等。它提供了一种安全、高效、可信赖的方式来进行交易和合作,减少了中间环节和风险,提升了交易的效率和可靠性。

3.1.2.2 步骤
  1. 定义合约:首先,开发者需要定义智能合约的结构、功能和逻辑。这涉及到确定合约的变量、函数和事件,以及定义它们之间的关系和交互方式。
  2. 编写代码:根据合约的定义,开发者使用合约编程语言(如Solidity)编写智能合约的代码。代码中包含了合约的变量、函数和事件的具体实现。
  3. 编译合约:编写完智能合约代码后,开发者需要使用合约编译器将其编译成字节码。编译过程会检查代码的语法和逻辑错误,并生成可在区块链上执行的字节码文件。
  4. 部署合约:部署合约是将合约字节码上传到区块链网络,并在区块链上创建合约实例的过程。开发者需要选择适当的区块链网络,并支付一定的交易费用来完成合约的部署。
  5. 调用合约:一旦合约被部署到区块链上,其他用户可以通过调用合约的函数与之交互。调用合约需要构造交易并发送到区块链网络,以执行合约中定义的相应操作。
  6. 执行合约:当交易被打包进区块并被确认后,合约的函数将被执行。合约的执行结果会被记录在区块链上,并对所有参与者可见。
  7. 合约状态更新:合约的执行可能会导致合约的状态发生变化,例如更新合约的变量值或触发特定的事件。这些状态变化会被写入区块链,并对其他人可见。

智能合约的步骤可以根据具体的区块链平台和开发工具有所不同,上述步骤仅为一般性的概述。开发者需要熟悉所使用的具体平台和工具的文档和指南,以确保正确地编写、部署和调用智能合约。

3.1.2.3 应用

DApp(去中心化应用):常见的DApp包括去中心化金融(DeFi)应用、数字身份验证应用、去中心化交易所(DEX)、游戏等。随着区块链技术的不断发展,DApp将继续在各个领域推动创新,并改变传统的中心化应用模式。

3.2 以太坊介绍

3.2.1 什么是以太坊

以太坊(Ethereum)是一种基于区块链技术的开源平台,旨在构建和运行智能合约和去中心化应用程序(DApps)。以太坊于2015年由Vitalik Buterin等人提出,并于同年上线。

以太坊的核心是一个分布式计算平台,它使用以太坊虚拟机(Ethereum Virtual Machine,EVM)来执行智能合约。智能合约是一种自动执行的计算机程序,可以在去中心化网络上进行部署和操作。以太坊的设计目标是提供一个灵活且高度可编程的平台,使开发者能够构建各种类型的应用程序,而不仅限于传统的货币交易。

以太坊的原生加密货币称为以太币(Ether,简称ETH),它是以太坊网络中的内部计算资源,并且被用作支付交易费用和奖励矿工的费用。以太币也是其他基于以太坊平台上的代币发行的基础。

以太坊的特点包括具有可扩展性、安全性和去中心化的特性。它提供了一个开放的平台,使开发者能够构建基于区块链的应用程序,并通过智能合约实现自动化和可编程的功能。

3.2.2 官网地址

英文版:Home | ethereum.org

中文版:首页 | ethereum.org

3.2.3 浏览器交易地址

Ethereum (ETH) Blockchain Explorer (etherscan.io)

以太坊环境准备

3.2.4 私有链、公有链、联盟链

私有链(Private Chain)是指基于区块链技术构建的仅限于特定组织或个人使用的链。

特点:私有链的参与者和节点都由同一个实体控制,因此可以更好地控制链的权限、隐私性和性能。

应用:私有链通常用于企业内部的区块链解决方案,旨在提高效率、安全性和数据保密性。

公有链(Public Chain)是指开放给任何人参与的区块链网络。

特点:公有链的参与者可以匿名,任何人都可以创建账号、交易和参与共识过程。公有链的特点是去中心化和透明,所有的交易和操作都可以被公开验证。

应用:比特币和以太坊就是典型的公有链。

联盟链(Consortium Chain)是介于私有链和公有链之间的一种形式。

特点:它由一组特定的组织或实体共同管理和控制,这些组织之间达成共识并共享资源。

应用:联盟链通常用于跨组织合作的场景,如供应链管理、金融行业等,可以提供更高的效率、可扩展性和安全性。

3.2.5 比特币和以太坊

区别:

  1. 目的和设计思路不同:比特币最初是作为一种数字货币而设计的,旨在解决中心化货币系统中的问题,如中心化的发行机构、通胀等。以太坊则是为了实现智能合约而设计的,它不仅可以实现货币的交易,还可以创建分布式应用程序(DApp)和自动化的智能合约。

  2. 区块时间和容量不同:比特币的区块时间为10分钟,而以太坊的区块时间为15秒。这意味着比特币网络处理交易速度较慢,而以太坊网络处理交易速度较快。此外,比特币区块容量为1MB,而以太坊没有固定的区块容量限制。

  3. 挖矿算法不同:比特币使用SHA-256算法进行挖矿,而以太坊使用Ethash算法进行挖矿。这两种算法都需要大量的计算能力来完成,但是Ethash相对于SHA-256更加抗ASIC,因此以太坊网络上有更多的GPU挖矿。

  4. 智能合约功能不同:以太坊的智能合约功能比比特币更加强大和灵活。以太坊的智能合约可以处理复杂的逻辑和条件,如创建新的代币、触发交易、实现去中心化金融应用等。与此同时,比特币只支持基本的交易类型和脚本语言。

3.3 metamask钱包的使用

MetaMask安装及使用(全网最全!!!)_metamask如何安装-CSDN博客

3.4 remix的使用

Remix-Desktop安装-CSDN博客

3.5 solidity基础

Solidity基础(详细易懂!!!)_solidity需要什么基础-CSDN博客


因为博主近期忙于学习其他知识,以下两个知识点,只给出大体方向,实在抱歉!!!

如果可以的话,也许以后可以补上。

如果只是单纯的以太坊学习,做智能合约开发,而不是使用go语言去和以太坊做一个交互,也可以使用web3.js(主流)去做交互,具体的学习方式请看:

javascript版:(32 小时最全课程)区块链,智能合约 & 全栈 Web3 开发_哔哩哔哩_bilibili

3.6 go调用以太坊

golang与以太坊交互-CSDN博客

3.7 go调用智能合约

golang与以太坊交互-CSDN博客

感谢您的观看,go语言–区块链学习(四)Hyperledger Fabric的部分,有生之年,博主应该会更新的。。。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/952781
推荐阅读
相关标签
  

闽ICP备14008679号