✍️
HyperGraph-Decentralized Data Engine
  • 欢迎了解 HyperGraph
  • 💰Farm - 挖矿帮助
    • 了解挖矿
      • DeFi挖矿的本质
      • 挖矿需要的准备工作
      • DeFi挖矿与其他挖矿的异同
      • 挖矿产出、轮次
      • 矿池介绍
    • 钱包基本操作
      • 火币钱包注册Heco地址
      • TokenPocket(Heco)
      • MetaMask 的网页版
      • MetaMask 连接 Heco 主网
      • BitKeep 钱包
    • 挖矿资产准备
      • 如何转入HT或者其他主流资产
      • 兑换所需币种
      • 添加流动性
    • 质押挖矿
    • 常用术语
    • 合约操作
      • 合约操作介绍
      • 合约操作环境准备
      • 合约数据读取
      • 合约写操作执行
  • 🛠️Product - 产品帮助
    • 产品使用篇
      • HyperGraph 的产品业务
      • 控制台注册与登录
      • 添加子图
      • 查看子图
    • 程序开发
      • 业务交互流程
      • 快速入门
      • 远程部署
      • 开发部署 FAQ
      • 子图开发
      • GraphQL API
      • AssemblyScript API(一)
      • AssemblyScript API(二)
    • 项目范例
      • Uniswap subgraph 范例
      • Uniswap-info 范例
    • 常用子图
    • 服务用户
  • 🪜HyperBridge
    • HyperBridge
    • Token 跨链
    • 主流跨链
    • 主流流动性提供
    • 主流购买Gas
  • 🧩 Network - 节点网络
    • 总体介绍
    • 网络建设
    • 节点角色
    • 节点设备
    • 节点查看与管理
    • 节点托管类型
    • 定价方案第二版
    • 节点网络 FAQ
    • Heco 网络公开归档节点
  • 📖 INTRODUCTION - 项目介绍
    • HyperGraph 简介
    • HyperGraph 优势
    • 跨链支持
    • 常用合约地址
    • 通证分配
    • HyperGraph 审计报告
  • 🔬DApp开发教程
    • DApp开发基础认识
    • 开发前的准备
    • 基础开发环境
    • Web3与Solidity基础
    • ERC720 开发实例
    • ERC721 DApp 开发实例
  • 🔗 Links - 其他链接
    • HyperGraph 官网
    • HyperGraph White Paper
    • HyperGraph 挖矿页
    • Heco 区块浏览器
    • BSC 区块浏览器
    • English Document
Powered by GitBook
On this page

Was this helpful?

  1. DApp开发教程

DApp开发基础认识

本教程是技术大牛 luofei614 的DApp开发学习笔记,编成教程分享给开发者。

0. 基础认识

  • 以太坊是什么?

以太坊被称为“世界计算机”, 全世界上千个节点, 具备“图灵完备”的特性,可以永久运行下去。 以太坊可以看作是“全球共享的不可篡改的单线程的事务性数据库” 。

  • 不可篡改性

  • 基于区块链特性,上千个节点共同确认,被记录到链上的信息将不可篡改,使得价值可以在互联网上传播。

  • 单线程性

  • 不会出现双花,在同时发出的交易中,必然会有一个交易会失败, 每次交易会有个nonce参数来避免重复交流。

  • 事务性

  • 每次交易出现异常,会回滚到初始状态, 即使一次交易执行了多个合约,前面的合约执行没有异常,后面合约有异常也会让前面的合约操作回滚。

  • 钱包是什么?

  • 钱包是管理私钥的,并没有存数字货币,数字货币是存在区块链上的, 私钥是最重要的, 私钥可以生成公钥,公钥可以生产账号地址。 Dapp开发会和钱包交互,Dapp并不会自己拿用户的私钥做加密操作,而是Dapp调用钱包,钱包加密后返回给Dapp。

  • 智能合约的机制

  • 智能合约也是一个以太坊账号,这个账号只有账户地址,没有私钥。

  • 创建智能合约实际是向地址为0的账号发起一次交易。 交易中data参数是合约的二进制代码数据。 交易完成后会返回智能合约地址。

  • 调用智能合约的方法实际是向智能合约地址发起交易。交易中data参数告诉了以太坊EVM要执行什么函数和函数的传参。

  • 交易过程传参。

  • nonce: 一个序列号编码,以账号的交易数作为这个值,是为了防止重放攻击。 以太坊是用交易随机数nonce按顺序确认的, nonce是交易账号的交易量,每次唯一,递增。

  • gas price : gas 是交易的燃料,燃料必须用以太坊购买,gas price定义了愿意支付的gas单价, 价格越高会执行越快,平均价格是节点决定的, 他的单位是wei, 1ETH=10**18wei 。 之所以有gas是为了防止DDOS攻击。让每次交易都是有成本的。

  • gas limit: 交易发起者最多支付多少gas, 如果到达这个数没有完成交易,会回滚,但消耗的gas不会返回。 汇款交易的gas是固定的21000个, 但是智能合约执行不是固定的。

  • value : 往交易地址发送的以太坊数量。 如果给0地址发送带value不带data的数据时,实际是摧毁币。

  • data : 附在交易的可编程的数据, 智能合约的创建和调用会用到这个data参数。

  • v,r,s : 签名相关的三个字段。 签名中会将链ID(chain_id)作为带入到签名,为了防止跨链重放攻击。 以太主网链ID是1 , Ropsten测试网链ID是3 , 火币正式链ID是128, 火币测试链ID是256,币安ID是56, 本地测试网ID是1337

PreviousHyperGraph 审计报告Next开发前的准备

Last updated 4 years ago

Was this helpful?

🔬