首页 > 资讯 > 应用 > CITA:面向企业级应用高性能区块链内核
CITA 支持哪些编程语言来编写智能合约
2019-11-01 14:04:10作者:CITA来源:CITA
智能合约
语言 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
。
是暴露在应用层的。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 的实例
交易如果需要转币,必须要有转账的来源、去处、额度,但是有的交易不需要转币,这个相关参数如何处理?交易如果需要转币,不需要提供来源,只需要提供去处,因为签名信息已经代表了来源,如果不需要转币,相关参数传空字符串就可以。