平台语言中的新语法
智能合约语言智语言(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)
我们重新设计了生态系统的结构,并移除了全球生态系统。其内部的页面、菜单、合约、表格等相关的添加和编辑处理等,会过渡到合约。
合约语言现已允许使用附加函数参数来指定链,并添加了获取数据的通用函数(类似于模板引擎中的方法)。现在任意数量的参数都可以传递给函数
领取专属 10元无门槛券
私享最新 技术干货