概览

前言: Kaleido是基于Algorand共识算法的公链,系统结构和以太坊相同,采用的是账户模型和基于EVM虚拟机的智能合约系统,完全兼容以太坊的环境,智能合约开发语言采用的是Solidity。链上合约的部署和以太坊相同,也是采用gas机制,链上结算单位为Kal。kaleido智能合约编写和部署完全兼容以太坊合约,在使用时与以太坊不同之处在合约使用前需要抵押一部分Token获得链24小时周期的使用权,所以在合约部署完成之后需要执行一个抵押操作。除了这些还提供了更丰富的功能,权限控制、链上随机数等:

抵押机制:kaleido通过合约抵押机制分配合约执行权限,合约创建后,合约创建者必须有Kal抵押,合约才能被用户使用,(抵押额度=创建者账户Kal+抵押合约Kal),抵押额度关系着24小时内合约可以被调交易次数,创建者可以通过抵押合约来接受别人抵押增加合约调用次数.用户随时将账户Kal抵押给指定的合约创建者,也可以任意时候取出抵押额度,抵押的Kal只能由抵押者自己取出;

权限控制:kaleido为降低用户使用门槛,提供给合约的功能模块,合约创建者可以通过权限控制合约为自己合约用户代扣合约交易手续费,实现用户零门槛接入;相应的为了防止代扣手续费交易泛滥,系统合约提供了2种权限控制模式:白名单模式和黑名单模式.

  • 白名单模式,只有加入白名单列表用户才能发起代扣手续费交易,其他用户只能发送普通交易(由调用者付手续费用);
  • 黑名单模式,加入了黑名单列表用户不能发起代扣手续费交易;
  • 注意同一个创建者的所有合约共享黑白名单数据;
  • 创建者还能通过权限控制指定用户代扣手续费交易的gasLimit,gasPrice上限,防止账户Kal被大量消耗; 用户在调用合约时只需将交易中gasLimit(tx.gas)置为0,指定交易为合约创建者代扣手续费,这样用户即使在账户没有Kal的情况下也能使用合约;