5.5.2``Algorand

Algorand的Reach连接器)生成了一组用于管理DApp)执行的实例。

其使用了有限的链上状态信息:两个整型数据和一个字节长的字符串。该DApp由一个应用、一个通过合约控制的托管账户以及大量由合约控制的处理程序,这些程序被用于处理Reach程序公开的签名数据。在编译过程中,连接器针对这些合约产生了中间输出。利用Reach的标准库实现,这些合约通过模板参数嵌入了对每一个合约的引用信息。

这依赖于支持TEAL3版本的algod,例如在2021年3月中旬释放的Algorand BetaNet2.5.2版本。它使用第2版的Algorand索引器来查找和监测公开签名数据);换句话说,它*不依赖Algorand本身以外的任何通信网络。

Algorand使用的是Keccak256算法以生成摘要)。其比特宽度)为64比特。

非网络代币)将会被编译为Algorand标准资产(简称ASAs)。Reach programs that use 使用非网络代币)部署在Algorand的Reach程序由于Algorand账户拥有“opt-out”特性,因此在本质上易于受到拒绝服务攻击。例如,如果程序包含一个Alice将获得1个gil而Bob将获得2个zorkmid的共识步骤),Alice或Bob可以通过各自分别“opt-out”gil或zorkmids来阻止该步骤的执行。(“opt-out”是通过发送一个带有非零AssetCloseTo字段的资产转移交易(axfer)进行实现的)。你可以通过确保任何非网络代币)的转移只能发生在程序的最后一个共识步骤处,并且资金接收方能够以任何顺序执行来缓解这个问题。我们希望在Algorand的未来版本能够提供一个防止这些拒绝服务攻击的设施。

该连接器不支持不同的 “部署模式”,并将它们都视为 "构造器"

该连接器为后端)提供了一个名为ALGO的绑定。

后端)必须遵循如下的环境变量:

  • ALGO_TOKEN被用作你的algod的API令牌。
  • ALGO_SERVER是你的ALGOD的地址。
  • ALGO_PORT被用作您的ALGO的端口。
  • ALGO_INDEXER_TOKEN是你的索引器的API令牌。
  • ALGO_INDEXER_SERVER是你的索引器的地址。
  • ALGO_INDEXER_PORT 用作你的索引器的端口。
  • ALGO_FAUCET_PASSPHRASE 作为你的网络水龙头的记号。如果你正在运行你自己的测试网络,这很有用。