政務鏈-軟體平台與智能合約語言
平台語言中的新語法
智能合約語言智語言(G Language)和模板語言乾語言(Chain Language)過渡到新的語法。此外,我們還移除了冗餘及重複的函數,並統一了從資料庫表中獲取值的函數,以及將值傳遞給介面元素(表、選擇欄位和小部件)。
下面是展示從資料庫中獲取值的函數語法:
DBFind(table string) [.Columns(columns string)] [.Where(where string, params …)] [.WhereId(id int)] [.Order(order string)] [.Limit(limit int)] [.Offset(offset int)] [.Ecosystem(ecosystemid int)] array
該函數根據指定的請求從資料庫表接收數據,返回的數組是一個由map關聯數組組成的。
?table—? 表名稱;.
?сolumns?—?返回列列表。如果未指定,將返回所有列;
?Where?—? 搜索功能。舉例如下: .Where(「name = 『John』」)或.Where(「name = ?」, 「John」)
?id? —? 搜索標識符號。舉例如下:.WhereId(1)
?order??—一個欄位,用於排序。默認情況下,值是按id排序;
?limit?—? 返回值的數量(默認值 default = 25, 最大值 maximum = 250);
?offset?—? 返回所撤銷的值;
? ecosystemid ?— 生態系統ID。默認情況下,值取自於當前生態系統的表。
模型
為了增強源代碼,我們重新設計了用於資料庫的模型層。模型已統一,並修復了一些bug。
已修復與模型層處理資料庫相關的bug
我們修正了源代碼中的一個錯誤,該錯誤在資料庫中缺少請求數據相關的錯誤中,在於它不允許區分資料庫訪問錯誤。這些錯誤類型已被分離,並相應地重寫代碼庫。
轉換器
為了簡化源代碼,我們重新設計了部分數據轉換模塊,通過刪除部分函數並重新編譯剩餘的一些函數來改進錯誤處理。
中心化項目記錄系統
我們增加了一個中心化的數據記錄系統,它允許保存各種數據格式的數據日誌。現已重新設計以下模塊:
? API
? Config(配置模塊)
? Crypto (加密模塊)
? Daylight (日光模塊)
? ExchangeAPI (交易API模塊)
? Language (多語言模塊)
? TCPServer (TCP伺服器模塊
? Utils (工具集模塊)
? Virtual machine (虛擬機模塊)
自動更新系統
作為平台軟體更新機制的一部分,已開發了以下模塊:
伺服器更新
客戶端更新
這個更新系統允許為任何架構分發任何軟體版本列表。每一個版本都可以從區塊鏈中某一具體而確定的區塊高度開始使用。分散式更新文件的簽署會在政務鏈(Gachain)更新私鑰時上傳至更新伺服器。在更新終端節點上的軟體之前,使用公鑰檢查文件簽名。此過程確保了該更新是受信任的,並且是由官方發布。
過時的代碼部分已被刪除。
由於對代碼庫的重大變更,其中一部分代碼已經過時,也不再使用。現已刪除代碼中不會被使用的部分代碼。
對模板引擎的更新
我們已經為用戶頁面開發了一個新版本的模板引擎,它能夠通過名稱傳遞參數。現階段還只是一個JSON樹元素,並不是一個完整的HTML代碼,該模板引擎直通前端。我們添加了一個選項來指定與點分隔的附加參數。、
為了從表獲取數據,已創建了一個統一的函數。使用範例:
? DBFind(mytable, mysrc).Columns(「id,name」).Limit(1)
我們重新設計了生態系統的結構,並移除了全球生態系統。其內部的頁面、菜單、合約、表格等相關的添加和編輯處理等,會過渡到合約。
合約語言現已允許使用附加函數參數來指定鏈,並添加了獲取數據的通用函數(類似於模板引擎中的方法)。現在任意數量的參數都可以傳遞給函數
TAG:GACHAIN |