Reach是用于构建去中心化应用程序(DApps)的领域特定语言。
这组文档包含您需要了解的有关Reach的所有内容。
- 概述部分简要介绍了Reach的基本思想。在深入到其他部分之前,了解一些上下文会有所帮助。如果你有使用现有工具进行区块链开发的经验,我们建议阅读概述和与其他开发平台的比较。
- 该教程是创建简单DApp的一系列步骤。如果你以前从未使用过Reach,想从头开始,那么你应该从这里开始。它假定没有DApp/区块链开发经验。
- 指南不断通过讨论贯穿Reach的关键思想和概念。在你开始使用指南之后,你会经常想要访问该指南来了解一些话题的背景和“为什么”。
- 工作坊将继续本教程,提供一组自学项目,帮助您通过使用 Reach 进行实践来掌握分散式应用程序设计。每个项目都包含一个完整的解决方案,因此它也是在 Reach 中构建特定事物的食谱集合,并演示了 Reach的有效使用,以及 Reach 程序员面临的一些设计决策。
- 最后,本文提供了关于Reach各个方面的详尽技术参考。
如果你正在寻找一些特定的东西,这里有一些地方可以看:
- 试着查阅索引或目录。
- 开始在Discord上探讨。
- 使用GitHub问题跟踪器报告问题。
这个网站的源代码可以在GitHub上找到;我们欢迎提出改进和问题报告!
| 1概览 |
|---|
| 1.1去中心化应用 |
| 1.2.一个最小reach程序 |
| 1.3编译 |
| 1.4验证 |
| 1.5 界面 |
| 1.6执行 |
| 1.7web应用 |
| 1.8后续步骤 |
| 2教程 |
| 2.1安装和初始化 |
| 2.2搭建和安装 |
| 2.3石头剪刀布 |
| 2.4赌博和赌注 |
| 2.5信任与承诺 |
| 2.6超时和参与 |
| 2.7一直赌下去 |
| 2.8互动与独立 |
| 2.9网页交互 |
| 2.10.继续前进 |
| 3指南 |
| 3.1在Windows上使用Reach |
| 3.2Reach如何使用版本号? |
| 3.3Reach开发与Solidity开发相比如何? |
| 3.3.1Solidity开发 |
| 3.3.2Reach开发 |
| 3.3.3结论 |
| 3.4验证方式和验证内容 |
| 3.5查找并使用循环不变量 |
| 3.6选择部署模式 |
| 3.7不参与:什么是不参与,如何防范 |
| 3.8去中心化应用中的决定论、同时性和选择性 |
| 3.9去中心化应用中的竞速不确定性 |
| 3.10建立去中心化的抽象概念 |
| 3.11在浏览器中测试Reach程序 |
| 3.11.1Algorand |
| 3.11.1.1Algorand:助记词 |
| 3.11.1.2算法:算法签名 |
| 3.12Reach的局限性和未来的发展路线? |
| 3.13 Reach是如何工作的? |
| 3.14IDE/文本编辑器支持 |
| 4讲习班 |
| 4.1工作坊:哈希锁 |
| 4.1.1问题分析 |
| 4.1.2数据定义 |
| 4.1.3通信建设 |
| 4.1.4断言插入 |
| 4.1.5互动介绍 |
| 4.1.6部署决定 |
| 4.1.7讨论 |
| 4.2工作坊:中继账户 |
| 4.2.1问题分析 |
| 4.2.2数据定义 |
| 4.2.3通信建设 |
| 4.2.4断言插入 |
| 4.2.5互动介绍 |
| 4.2.6部署决定 |
| 4.2.7讨论和下一步 |
| 4.3讲习班:信托基金 |
| 4.3.1问题分析 |
| 4.3.2数据定义 |
| 4.3.3通信建设 |
| 4.3.4断言插入 |
| 4.3.5互动介绍 |
| 4.3.6部署决定 |
| 4.3.7讨论和下一步行动 |
| 4.4Workshop:害怕错过(FOMO) |
| 4.4.1问题分析 |
| 4.4.2数据定义 |
| 4.4.3通信建设 |
| 4.4.4断言插入 |
| 4.4.5互动介绍 |
| 4.4.6部署决定 |
| 4.4.7讨论和下一步 |
| 4.5Workshop:害怕错过 |
| 4.5.1问题分析 |
| 4.5.2数据定义 |
| 4.5.3通信建设 |
| 4.5.4断言插入 |
| 4.5.5互动介绍 |
| 4.5.6部署决定 |
| 4.5.7讨论和下一步 |
| 4.6工作坊:公平的剪刀石头布 |
| 4.7工作坊:高效的石头剪刀布 |
| 4.8工作坊:租赁协议 |
| 4.9工作坊:同步游戏 |
| 4.10工作坊:监护人账户 |
| 4.11工作坊:定期付款 |
| 4.12讲习班:Nim |
| 4.13工作坊:Tic-Tac-Toe |
| 4.14工作坊:担保贷款 |
| 4.15工作坊:比赛 |
| 4.16工作坊 : 胆小 |
| 4.17工作坊:人气比赛 |
| 4.18工作坊:简单的NFT |
| 4.19工作坊:抽奖 |
| 4.20工作坊:寻租 |
| 4.21研讨会:预言机 |
| 4.22工作坊:定时英式拍卖 |
| 4.23讲习班:众筹 |
| 4.24 讲习班:众筹 |
| 5参考 |
| 5.1安装 |
| 5.2用法 |
| 5.2.1Reach编译 |
| 5.2.2Reach 初始化 |
| 5.2.3Reach运行 |
| 5.2.4Reach down |
| 5.2.5Reach搭建 |
| 5.2.6Reach反应 |
| 5.2.7Reach设备 |
| 5.2.8Reach升级 |
| 5.2.9Reach更新 |
| 5.2.10Reach版本 |
| 5.2.11Reach 哈希 |
| 5.3语言模型 |
| 5.3.1评估模型 |
| 5.3.2编译模型 |
| 5.3.3语法模型 |
| 5.4程序 |
| 5.4.1有效期 |
| 5.4.1.1安保级别和范围 |
| 5.4.2模块 |
| 5.4.2.1声明 |
| 5.4.2.1.1输出 |
| 5.4.2.1.2输入 |
| 5.4.2.2表达式 |
| 5.4.2.2.1Reach app |
| 5.4.2.2.2参与建设者 |
| 5.4.3步骤 |
| 5.4.3.1声明 |
| 5.4.3.1.1仅限于此 |
| 5.4.3.1.2发布、支付、何时和超时 |
| 5.4.3.1.3分叉 |
| 5.3.1.4等待 |
| 5.4.3.1.5出口 |
| 5.4.3.2表达 |
| 5.4.3.2.1比赛 |
| 5.4.3.2.2不可知的 |
| 5.4.3.2.3接近 |
| 5.4.4本地步骤 |
| 5.4.4.1声明 |
| 5.4.4.2表达方式 |
| 5.4.4.2.1这个 |
| 5.4.2.2相互作用 |
| 5.4.4.2.3假定 |
| 5.4.4.2.4不合格 |
| 5.4.4.2.5解密 |
| 5.4.4.2.6做出承诺 |
| 5.4.5共识步骤 |
| 5.4.5.1声明 |
| 5.4.5.1.1实施 |
| 5.4.5.1.2唯一与其他 |
| 5.4.5.1.3参与者.集合和.集合 |
| 5.4.5.1.4消磨时光 |
| 5.5.1.5继续 |
| 5.4.5.1.6平行减少 |
| 5.4.5.2表达方式 |
| 5.4.5.2.1这个 |
| 5.4.5.2.2转让 |
| 5.4.5.2.3要求 |
| 5.4.5.2.4检查委员会 |
| 5.4.5.2.5远程物体 |
| 5.4.5.2.6映射:创建和修改 |
| 5.4.5.2.7成套工具:设定和修改 |
| 5.4.6计算 |
| 5.4.6.1评论 |
| 5.4.6.2区块 |
| 5.4.6.3声明 |
| 5.4.6.3.1常数和函数 |
| 5.4.6.3.2返回 |
| 5.4.6.3.3 if |
| 5.4.6.3.4转换 |
| 5.4.6.3.5区块声明 |
| 5.4.6.3.6表达说明 |
| 5.4.6.4表达方式 |
| 5.4.6.4.1标识符参考 |
| 5.4.6.4.2功能应用 |
| 5.4.6.4.3类型 |
| 5.4.6.4.4文字值 |
| 5.4.6.4.5运算符表达式 |
| 5.4.6.4.6 xor |
| 5.4.6.4.7括号内的表达式 |
| 5.4.6.4.8元组 |
| 5.4.6.4.9阵列 |
| 5.4.6.4.10元素参考 |
| 5.4.6.4.11数组和元组的长度:元组长度、数组和长度 |
| 5.4.6.4.12数组和元组更新:Tuple.set、Array.set和.set |
| 5.4.6.4.13可折叠操作 |
| 5.4.6.4.14数组操作 |
| 5.4.6.4.15映射组操作 |
| 5.4.6.4.16对象 |
| 5.4.6.4.17结构 |
| 5.4.6.4.17参考资料 |
| 5.4.6.4.19目标集 |
| 5.4.6.4.20对象集 |
| 5.4.6.4.21客体所有 |
| 5.4.6.4.22数据 |
| 5.4.6.4.23可能性 |
| 5.4.6.4.24任何一个 |
| 5.4.6.4.25比赛 |
| 5.4.6.4.26条件表达式 |
| 5.4.6.4.27箭头表达式 |
| 5.4.6.4.28 makeEnum |
| 5.4.6.4.29 断言 |
| 5.4.6.4.30 全部 |
| 5.4.6.4.31 可能性 |
| 5.4.6.4.32 摘要 |
| 5.4.6.4.33 余额 |
| 5.4.6.4.34最后共识时间 |
| 5.4.6.4.35制定截止日期 |
| 5.4.6.4.36隐含 |
| 5.4.6.4.37保证 |
| 5.4.6.4.38随机 |
| 5.4.4.39组成 |
| 5.4.6.4.40 sqrt |
| 5.4.6.4.41 pow |
| 5.4.6.4.42整数符号 |
| 5.4.6.4.43固定点数 |
| 5.4.6.4.44任何人 |
| 5.4.6.4.45“严格模式” |
| 5.5共识网络连接器 |
| 5.5.1以太坊 |
| 5.5.2 Algorand |
| 5.6 参与者后端 |
| 5.6.1 Java脚本 |
| 5.6.1.1 保证 |
| 5.6.1.2加载器 |
| 5.6.1.3标准图书馆 |
| 5.6.1.3.1特定于以太坊的职能 |
| 5.6.1.3.2 用具 |
| 5.6.1.4 询问 |
