首页 > 资讯 > 应用 > CITA:面向企业级应用高性能区块链内核

CITA 支持哪些编程语言来编写智能合约

2019-11-01 14:04:10作者:CITA来源:CITA
CITA( Cryptape Inter-enterprise Trust Automation )是一个面向企业级应用的支持智能合约的高性能区块链内核

智能合约

语言 CITA 支持哪些编程语言来编写智能合约?

Solidity,Rust

CITA 支持用 Go 来写智能合约吗?

在 v1.0.0 以前的 CITA 支持 Go 合约,但是 Go 合约不能够和 solidity 的合约互相调用。在使用的时候,需要单独为每一个节点启动关于 Go 合约的服务,操作比较繁琐。除此之外,在 Go 合约中使用随机数会导致链的分叉,因为 Go 合约是每一个节点单独作为一个服务运行的。

同时考虑到客户对 Go 智能合约的需求并不强烈。因些, 在版本 v1.0.0 中, CITA 暂时取消了对 Go 智能合约的支持。

版本 CITA 0.17 和 0.18 的solc 版本分别最高支持多少?

0.4.19 和 0.4.24

系统保留地址 对于 0xffffffffffffffffffffffffffffffffff010000 存证指令的这个地址,是怎么使用的呀?现在我向这个地址存了数据,该用什么方法去读取呢?

就是普通的发交易,读取的话就是根据交易哈希查询 getReceipt,然后取出来。

RPC/SDK

chainid 是写在配置文件中的,如何获取?

chainId可以通过getMetaData这个jsonRPC方法来获取。 示例命令:curl -X POST —data '{"jsonrpc":"2.0","method":"getMetaData","params":["latest"],"id":1}' ipAddr:port

sdk 中新出现的参数 value(智能合约反向生成的 java 类,在 deploy 中出现的 value)具体代表什么含义,需要给应用层暴露么?

是暴露在应用层的。value 是指原生 token,之前 CITA 是没有币这个概念的,0.17 加入的,所以多了 value 这个概念。 这个 value 在部署的方法里现在是没有用到的,只是在转账的时候用到,部署的时候填入空字符串即可.

quota 和 value 有什么差别,应用如何对应输入参数?

quota 是你发送一个交易(包括调用合约,部署合约和转账)所需要付出的矿工费,如果不足则该交易无法入链,value 是你要在该交易中发送的币的数量,比如你要给A转账1个币,那么value就是1(注意这里的单位是ether),quota 是 100000 quota. (quota 的最小单位就叫quota, 类似以太坊的 wei, 但是注意我们不要用 ethereum 的单位体系)。如果交易失败了你的 quota 仍然会损失,但是 value 是不会损失的。

什么是交易的基础配额

交易的基础配额, 指的是一个交易在执行前必须滿足的最小配额 (quota) 值。在当前 CITA 中, 发送部署合约的交易,其基础配额是 53000; 而发送一个普通交易, 其基础配额是 21000 。 当交易平台设定的 quota_limit 小于基础配额时, CITA 将会返回 "Not enough base quota" 错误。

eventlog的查询有示例代码么?

有的,在 github 上有一个 develop 分支,里面有个 project 叫 tests,里面都是例子,其中叫 TokenFilterTest 的是关于 event 的实例

交易如果需要转币,必须要有转账的来源、去处、额度,但是有的交易不需要转币,这个相关参数如何处理?

交易如果需要转币,不需要提供来源,只需要提供去处,因为签名信息已经代表了来源,如果不需要转币,相关参数传空字符串就可以。

合作联系/投稿/纠错

标签

    热文推荐