首頁 > 資訊 > 應用 > 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 的實例
交易如果需要轉幣,必須要有轉賬的來源、去處、額度,但是有的交易不需要轉幣,這個相關參數如何處理?交易如果需要轉幣,不需要提供來源,只需要提供去處,因為簽名信息已經代表了來源,如果不需要轉幣,相關參數傳空字符串就可以。