睿阳知识库 睿阳知识库
首页
  • npm库配置
  • PC端

    • npm常用命令
    • vue问题记录
    • SEO基础知识及优化
    • 禁止别人调试我的前端页面代码
  • 移动端

    • 小程序
    • Risun.js使用说明
  • Java

    • Maven库配置
    • RSP开发框架
    • RSP框架插件
  • .NET

    • Nuget库配置
  • Python

    • Pypi库配置
  • 常见问题

    • Word转Pdf字体错乱
    • 使用Jacob进行Word导出PDF
  • 自动部署
  • 前端带路径
  • Linux

    • 应用部署
  • Windows

    • 应用部署
  • 视频监控
  • MySQL系列~
  • 应用高可用
  • 静态代码扫描
  • OpenSSH版本升级
  • 区块链~
  • 软件过程文档目录
  • 著作权申请须知及申报示例
  • 项目申报技巧
  • 项目竣工资料清单
  • 科技项目申报流程及注意事项
  • 初级职称申报
  • 产品需求文档基础知识
  • 产品经理需了解的技术知识
  • 墨刀原型设计指南
  • 文档规范
  • 文档规范
  • 投标工作总结(一)
  • 科技项目申报心得体会
  • 数字孪生
  • AI
  • RSP基础平台
  • RMCloud
  • 区块链
  • 网络态势感知
  • 国产化
  • 数据湖
  • 贡献度
  • 文档编写说明
  • Markdown教程
工作链接
首页
  • npm库配置
  • PC端

    • npm常用命令
    • vue问题记录
    • SEO基础知识及优化
    • 禁止别人调试我的前端页面代码
  • 移动端

    • 小程序
    • Risun.js使用说明
  • Java

    • Maven库配置
    • RSP开发框架
    • RSP框架插件
  • .NET

    • Nuget库配置
  • Python

    • Pypi库配置
  • 常见问题

    • Word转Pdf字体错乱
    • 使用Jacob进行Word导出PDF
  • 自动部署
  • 前端带路径
  • Linux

    • 应用部署
  • Windows

    • 应用部署
  • 视频监控
  • MySQL系列~
  • 应用高可用
  • 静态代码扫描
  • OpenSSH版本升级
  • 区块链~
  • 软件过程文档目录
  • 著作权申请须知及申报示例
  • 项目申报技巧
  • 项目竣工资料清单
  • 科技项目申报流程及注意事项
  • 初级职称申报
  • 产品需求文档基础知识
  • 产品经理需了解的技术知识
  • 墨刀原型设计指南
  • 文档规范
  • 文档规范
  • 投标工作总结(一)
  • 科技项目申报心得体会
  • 数字孪生
  • AI
  • RSP基础平台
  • RMCloud
  • 区块链
  • 网络态势感知
  • 国产化
  • 数据湖
  • 贡献度
  • 文档编写说明
  • Markdown教程
工作链接
  • 视频监控
  • MySQL系列

  • 应用高可用
  • 静态代码扫描
  • OpenSSH升级
  • 区块链

    • 0.学习路线
    • 01.概述
    • 02.预备知识
    • 03.区块链原理
    • 04.比特币挖矿原理
    • 05.比特币交易原理
    • 06.电子钱包
    • 07.以太坊概述
    • 08.以太坊账户
    • 09.以太坊交易
    • 10.以太坊数据结构
    • 11.以太坊客户端
    • 12.以太坊权益证明
    • 13.智能合约
      • 一.概述
      • 二.研发语言
      • 三.研发框架
      • 四.Oracles预言机
      • 五. 以太坊网络
    • 14.Solidity精解
    • 15.HardHat说明
    • 16.去中心化应用
    • 17.区块链-供应链
  • 技术
  • 区块链
孙超
2023-06-28
目录

13.智能合约

# 一.概述

智能合约是一个运行在以太坊链上的一个程序。 它是位于以太坊区块链上一个特定地址的一系列代码(函数)和数据(状态)。

  • 智能合约的代码写完后,要编译成bytecode
  • 创建合约:外部帐户发起一个转账交易到0x0的地址
    • 转账的金额是0,但要支付Gas
    • 合约的代码放在 data 域里
  • 智能合约运行在EVM(256位 Ethereum Virtual Machine)上,EVM保证相同的操作将返回相同的输出,而不管它们实际运行的计算机
  • 以太坊是一个交易驱动的状态机
    • 调用智能合约的交易发布到区块链上后,每个验证者都会执行这个交易,从当前状态确定性地转移到下一个状态

# 二.研发语言

智能合约的研发语言,最主流的一共有四种Solidity (opens new window)、Vyper (opens new window)、Huff (opens new window)、Yul (opens new window)

  • Solidity: Solidity 是一种面向对象的编程语言,用于在以太坊和其他区块链上来编写智能合约。最流行87%,类似于 JavaScript。

  • Vyper: Vyper 是一种面向合约的类似于 Python 的编程语言,也是为 EVM 设计的。 Vyper 增强了可读性,并且限制了某些用法,从而改进了 Solidity。理论上,Vyper 提升了智能合约的安全性和可审计性。

  • Huff: 一种类似于汇编的底层语言。

  • Yul: 一种类似于汇编的底层语言,内置于 Solidity。

推荐选择 Solidity,查看对比文章 (opens new window)

# 三.研发框架

智能合约的开发框架非常多,这里选择HardHat (opens new window)。它提供了一套工具和实用程序,可以更轻松地在以太坊网络上编译、测试和部署智能合约。借助 Hardhat,开发人员可以使用以太坊最流行的编程语言 Solidity 编写智能合约,并利用自动合约测试、合约调试等高级功能,以及与 VSCode 和 Truffle 等流行开发工具的集成。

# 四.Oracles预言机

Oracles(预言机)是指将现实世界中的数据和事件引入区块链的中介机构。在区块链中,智能合约通常只能访问和操作区块链上的数据,无法直接获取外部的信息。预言机的作用是将外部数据引入区块链,使智能合约能够基于这些数据做出决策和执行操作。

预言机在区块链世界中充当数据源的角色,它们从外部数据源(如API、传感器、其他区块链等)获取数据,并将其提供给智能合约。预言机还负责验证和验证数据的可信度,以确保数据的完整性和可靠性。验证的过程可以包括数字签名、数据加密、多方签名等技术手段。

Chainlink (opens new window)是一个开源的、分散化的预言机网络,旨在解决智能合约与现实世界数据的连接问题。Chainlink 提供了一种可靠、安全的方式,使智能合约能够与外部数据源进行交互。它通过将多个预言机节点连接起来,建立起一个可信任的数据桥梁。

Chainlink 的设计目标是提供高度安全和高度可扩展的预言机解决方案。它使用Chainlink节点来获取和验证外部数据,并将其传递给智能合约。Chainlink节点之间的通信和数据传输是通过链链接协议进行的,以确保数据的可信度和一致性。

Chainlink 的核心理念是去中心化,它通过使用多个预言机节点和分散化的数据源来降低单点故障的风险,并提供更可靠的数据服务。它还提供了一套工具和协议,使开发者能够轻松地集成Chainlink预言机网络到他们的智能合约中。

# 五. 以太坊网络

以太坊网络主要分为Mainnet(主网)、Testnet(测试网)、Private Network(私有网络)、Sidechain 和 Layer 2 网络。

  • 主网(Mainnet):以太坊的主要网络,也被称为 "生产网络"。在主网上进行的交易和合约部署是真实的,需要使用真实的以太币(ETH)进行支付。

  • 测试网络(Testnet):以太坊的测试网络,用于开发和测试智能合约和 DApp。测试网络上的以太币是模拟的,没有真实价值。常见的测试网络包括 Ropsten、Kovan、Rinkeby 等。

  • 私有网络(Private Network):私有网络是在本地或私有环境中搭建的以太坊网络。它允许开发人员和组织在受控的环境中进行开发和测试,而不会干扰到公共网络。

  • Sidechain 和 Layer 2 网络:这些网络是建立在以太坊主网之外的扩展网络,旨在提高交易吞吐量和降低费用。它们使用不同的共识机制或扩展技术来实现更高的性能和可扩展性。

12.以太坊权益证明
14.Solidity精解

← 12.以太坊权益证明 14.Solidity精解→

最近更新
01
vue问题记录
10-11
02
RSP进度
10-09
03
贡献度
09-28
更多文章>
Copyright © 2014-2025 甘肃睿阳科技有限公司 陇ICP备15001783-1号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式