[Reach教程翻译] Reach是安全简单的Dapp开发语言
让用户可以像开发传统App一样开发DApp
目前使用Reach开发的智能合约可以部署在以太坊、Conflux、Algorand
Reach官网
Reach官方文挡
原文链接
在本教程中,我们将建立一个剪刀石头布的应用程序。其中,两个玩家Alice和Bob可以对比赛结果下注。我们将从头开始,并逐步完善这个应用程序的功能。
您可以复制程序的全部代码,然后查看运行情况。您也可以输入每行代码,这样您就可以熟悉Reach语言以及程序的每个部分。
首先创建一个名为index.rsh的文件。文件可以放置在任何位置,但是我们建议将其放在当前目录,即〜/reach/tut中。在随后的所有代码示例中,我们将以当前教程的代码作为基础代码结构进行扩充。例如,首先在index.rsh中输入以下内容:
rps-1-setup/index.rsh
1 'reach 0.1'; 2 3 export const main = Reach.App(() => { 4 const Alice = Participant('Alice', { 5 // Specify Alice's interact interface here 6 }); 7 const Bob = Participant('Bob', { 8 // Specify Bob's interact interface here 9 }); 10 deploy(); 11 // write your program here 12 13 });
您是否注意到rps-1-setup/index.rsh
代码示例上方的链接?您可以单击这些链接,进入GitHub库查看完整文件。
您的文本编辑器是否将index.rsh识别为Reach程序,并显示适当的语法提示?如果没有,请访问IDE/文本编辑器中的扩展支持,或手动配置该插件将Reach(.rsh)文件视为JavaScript。
这只是Reach程序的基础架构,并不能做多少事情,但是它具有一些重要的部份。
在进一步介绍之前,让我们为JavaScript前端代码创建一个类似的框架。创建一个名为index.mjs的新文件,代码如下:
rps-1-setup/index.mjs
1 import { loadStdlib } from '@reach-sh/stdlib'; 2 import * as backend from './build/index.main.mjs'; 3 const stdlib = loadStdlib(process.env); 4 5 (async () => { 6 const startingBalance = stdlib.parseCurrency(100); 7 const accAlice = await stdlib.newTestAccount(startingBalance); 8 const accBob = await stdlib.newTestAccount(startingBalance); 9 10 const ctcAlice = accAlice.deploy(backend); 11 const ctcBob = accBob.attach(backend, ctcAlice.getInfo()); 12 13 await Promise.all([ 14 backend.Alice(ctcAlice, { 15 // implement Alice's interact object here 16 }), 17 backend.Bob(ctcBob, { 18 // implement Bob's interact object here 19 }), 20 ]); 21 })(); // <-- Don't forget these!
这个JavaScript代码的主要结构在随后所有测试程序中都会被延用。
./reach compile
时所生成的。现在就可以编译和运行我们的程序了。输入./reach run
便可以运行**
Reach 会为应用程序构建并启动 Docker 容器。
(这份代码中没有做任何操作,您运行时只会看到很多诊断消息,这些对现在而言不太重要。)
当您开始下一步教程时,可以通过运行./reach init
来自动化创建Reach的脚手架代码!
在下一步中,我们将实现剪刀石头布的逻辑!我们也会开始见到我们DApp的雏形!
您知道了吗?:当您使用 Reach 编写 DApp 时,您应该
还是
?
回答:2. Reach将所有关于底层网络的细节都抽象化省去了^^
欢迎关注Reach微信公众号
并在公众号目录 -> 加入群聊 选择加入官方开发者微信群与官方Discord群
与更多Reach开发者一起学习交流!