Substrate Developer Hub

Substrate Developer Hub

  • 教程
  • 知识库
  • 进阶菜谱
  • API 文档
  • Languages icon简体中文
    • English
    • 繁體中文
    • 协助翻译

›智能合约

开始

  • 总览
  • 安装
  • 在 Windows 系统开始
  • 词汇表

学习 Substrate

  • Extrinsics
  • 交易池
  • 账户摘要
  • 会话密钥
  • 交易权重
  • 链下功能

Runtime

  • Runtime 总览
  • Runtime 的基本类型
  • FRAME
  • Pallets
  • Runtime宏
  • Runtime 元数据
  • Runtime 存储
  • Runtime 来源
  • Runtime 执行流程
  • Runtime事件
  • Runtime 错误
  • 交易费用
  • 链下工作机
  • 调试
  • Runtime 测试
  • 链上随机生成
  • Runtime 升级

智能合约

  • 总览
  • ink! 智能合约
  • ink! 概念
  • ink! 开发
  • EVM 模块
  • ink! 常问问题

整合

  • Polkadot-JS
  • 客户端库
  • 链描述
  • Subkey 工具
  • 内存分析

进阶

  • SCALE 编解码器
  • 共识机制
  • 区块导入过程
  • 执行器
  • 密码学
  • 存储
  • SS58 地址格式

贡献

  • 协助翻译
Translate

ink! 开发

ink! 是一种基于 Rust 的嵌入式领域专用语言(eDSL),专门用于 WebAssembly 智能合约、尤其是FRAME Contracts pallet的编写。

ink! 正在开发中,所以它的使用文档很少。 然而,在本页您将找到最好的资源来让您立刻开始构建 ink! 合约。

教程

Ink! 项目组一直在对教程进行更新和维护,教程包含了 ink! 开发所有的基础知识。

这是立即开始学习ink! 语言的最佳途径。

开始学习 ink! 教程

您将学习到:

  • 如何配置计算机以构建和部署 ink! 智能合约。
  • 如何通过创建一个增量器合约来 学习 ink! 的基础知识。
  • 如何通过开发 ERC20 合约学习到更先进的技巧。

合约示例

ink! 提供了一系列智能合约示例,可以帮助您了解它与其他智能合约语言的相似和不同之处。

这包括:

  • 一个 Flipper 合约
  • 一个 ERC20 合约
  • 一个 ERC721 合约
  • 一个 Delegator 合约

常见问答(FAQ)

以下是对开发者在开发 ink! 项目时常见问题的一些解答。

内存和存储有什么区别?

在 ink! 中,memory 指的是计算机内存,而 storage 指的是合约实例所占用的链上存储空间。 memory 是临时性的,仅持续到合约执行完成。而 storage 是持久的,可在多个合约的执行中存续。 合约storage 是部署在 Runtime 存储之上的,访问起来相对比较慢。

如何运行测试?

在用 ink! 构建智能合约时,你可以定义一组测试。

例如,在最小可行的 flipper 合约 中,您可以在合约代码底部找到一个小测试。

您应该像运行其他 Rust 测试一样运行该测试:

cargo +nightly test

获取帮助

加入正在增长的 ink! 智能合约开发者社区:

  • 在 StackOverflow 上询问开发问题,并带上 ink标签。
  • 加入 Riot 中的 Smart Contracts & Parity ink! 实时聊天组。
  • 在ink! 的 Github 中 提交bug、请求合并新功能以及询问技术类问题。

后续步骤

进一步学习

  • 在我们的 概念性文档 中 了解更多 ink! 的设计理念
  • 了解更多关于Contracts pallet的内容

示例

  • 按照教程,将此Contracts pallet添加到你的 Substrate Runtime 中。

参考文档

  • 访问 ink! 的代码库,查看更多的文档及源码
  • 访问 ink! 开发者主页
  • 访问 ink! 元数据参考文档
  • 访问 core ink! 语言的参考文献
← ink! 概念EVM 模块 →
  • 教程
  • 合约示例
  • 常见问答(FAQ)
    • 内存和存储有什么区别?
    • 如何运行测试?
  • 获取帮助
  • 后续步骤
    • 进一步学习
    • 示例
    • 参考文档
Substrate Developer Hub
开发者中心
教程知识库进阶菜谱API 文档
社区
社区主页通讯Substrate 技术聊天室Substrate 研讨会Stack Overflow推特事件 (Events)
更多
Substrate Builders 计划BlogSubstrate GitHub开发者中心 GitHub隐私政策使用条款Cookie 设置
Copyright © 2021 Parity Technologies