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 询问 |