Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Releases: ChainSQL/chainsqld

Release for version 3.4.5

13 Jan 06:36

Choose a tag to compare

功能

  1. 实现以太坊布隆过滤器
  2. 新特性:BloomFilter(区块头中增加Bloom字段)
  3. 增加预编译合约:ToolsPrecompiled,包含以下接口
//验证签名
function verify(string memory payload,string memory signature,string memory publickey) returns (bool);
//公钥转base58地址
function publicToAddress(string) returns (address);
//字符串连接
function stringConcat(string[]) returns (string memory);
//eth::sha256
function eth_sha256(bytes) returns (bytes32);
//eth::ripemd160
function eth_ripemd160(bytes) returns (bytes20);
//返回当前交易哈希值
function txHash() returns (bytes32);
  1. 支持以太坊接口批量请求,批量应答,请求格式如下:
[
{
    "id": 0, "jsonrpc": "2.0", "method": "eth_getTransactionReceipt", "params": ["0x637f1bc7b60ee60aba4316e82376d46323c7df74271ec230ef2a34a4f7e5ea5f"]
},
{
    "id": 0, "jsonrpc": "2.0", "method": "eth_getTransactionReceipt", "params": ["0x637f1bc7b60ee60aba4316e82376d46323c7df74271ec230ef2a34a4f7e5ea5f"]
}
]
  1. Amendments生效时间由2周改为12小时

优化

  1. 共识优化:当出现2v2(最新共识过的区块号不同导致无法达成共识)的情况时,增加拉取最新区块投票的方式以达到共识

Bug修复

  1. chainID()在sol合约中值不正确的bug
  2. 修复eth_estimateGas有时无法正确预估gas的bug
  3. 以太坊原生交易,在call指令中转账时,转账金额需除以1e+12
  4. eth_getTransactionReceipt 返回的日志中,合约地址不应该一直是同一个,应显示正确合约地址
  5. eth_call 在模拟交易调用时,需要访问当前交易修改的缓存
  6. 表同步模块:只有配置auto_sync=1时,加载auto_sync=1的数据库表进行同步
  7. 交易共识时,设置账户Sequence:只有交易Sequence与账户Sequence相等时,才设置为交易Sequence+1

Release for version 3.3.1

12 Jan 09:25

Choose a tag to compare

新功能

  1. 增加实名认证功能,实名认证账户才可以将系统币转出
  2. 增加 GasPriceCompress 特性,特性启用时,最终消耗的手续费为之前的千分之一
  3. 新增多个Web3 JsonRpc接口实现

新增配置

  1. 增加配置[remote_sync],默认为0,为0时表同步只根据本地区块进行同步,不走远程同步表数据
#开启远程同步的配置:
[remote_sync]
1
  1. 增加配置[ledger_sync],用于设置区块同步参数:
[ledger_sync]
request_map_count=1 	#区块同步时同时请求的合约存储数量
enable_state_hash_set=0	#区块同步时是否启用状态树叶子节点哈希缓存
  1. 增加配置[allow_remote],用于设置是否允许跨域请求,默认为0
[allow_remote]
1
  1. 增加配置[eth],用于配置以太坊本地签名账户私钥
[eth]
account_private=0x5e47123b1cfaff98506c716bad61a0d2c500a0dc6bf3c2064fe7880a90558068

功能优化及Bug修复

  1. fullbelow缓存优化:没有区块同步任务时,每一分钟请求一次最新区块,以保持fullbelow缓存不被全部释放
  2. 修复POP共识Bug:同步区块切换前要检查与前面共识过的区块是否是一条链的
  3. 修复以太坊交易哈希计算方式
  4. 修复区块同步Bug:会导致区块同步不完整,导致交易无法从交易池移除
  5. 已有chainID状态的链, eth_chainId 返回现有chainID的后2个字节转成的整数
  6. 修复Web3应用调用过程中的bug

Release for version 3.2.0

10 Oct 06:32

Choose a tag to compare

接口

  1. 新增接口
  • sync_info:获取节点本地表同步信息
  • tx_in_pool:获取交易池信息
  • monitor_statis:统计链上交易数、合约数、账户数(需开启Prometheus监控功能)
  1. 修改tx_history接口:
  • 过滤掉内部交易类型(EnableAmendment、SetFee、UNLModify)
  • 增加交易类型过滤功能
  • 对单个交易增加时间、交易执行结果字段

配置项

  1. Prometheus监控端口
[prometheus]
7007
  1. 超级管理员配置
[govenance]
admin=xxx
default_authority_enabled=0
  1. 节点准入控制
  • 配置信任的根证书,用于在建立p2p连接的过程中验证对等节点的子证书
  • 配置节点自身的子证书文件
[peer_x509_root_path]
./ca.cert

[peer_x509_cred_path]
./peer1.cert
  1. https,wss接口支持证书双向认证

https及wss协议的接口增加证书密钥及证书的文件路径配置,以及是否开启双向认证的配置。

[port_wss_admin_local]
port = 6006
ip = 0.0.0.0
admin = 127.0.0.1
protocol = wss
ssl_key = /Users/lascion/lcworkspace/cafile/server/server.key
ssl_cert = /Users/lascion/lcworkspace/cafile/server/server.crt
ssl_verify = 1

#如果开启双向认证,增加用于配置验证客户端证书的根证书文件路径
[trusted_ca_list]
/Users/lascion/lcworkspace/cafile/root/root.crt

说明:

  • ssl_key: 节点wss服务证书密钥文件路径
  • ssl_cert: 节点wss服务证书文件路径
  • ssl_verify: 是否开启双向认证,配置为1开启,0为不开启,默认为0
  1. 表同步是否只支持本地同步
[remote_sync]
0

特性

  • ContractStorage 修改合约存储实现为二级存储树
  • TableGrant 表授权一个授权对应一个SLE
  • PromethSLEHideInMeta 在交易详情的Meta字段中隐藏Prometheus监控相关的SLE修改

功能

  1. 支持wasm合约虚拟机
  2. 支持 Prometheus 对节点的监控
  3. 增加peer连接证书准入机制
  4. 支持与sdk之间的ssl连接,支持国密与非国密证书
  5. 支持用户证书吊销功能
  6. 超级管理员治理
  • 可授权转账、建表、建合约、发行数字资产
  • 可冻结、解冻、销毁合约
  1. 增加删除子链功能
  2. 增加对子链单独执行stop与start操作的功能

优化

  1. 缓存优化
  • 调节fullbelow缓存大小与过期时间
  • malloc_trim做到chainsql定时任务中,一分钟调用一次
  1. 共识优化
  • 优化节点启动初始化机制:init_announce
  1. 对transaction.db的处理实现读写分离
  2. 交易池增加定时任务移除LastLedgerSequence过期的交易

Bug修复

  • 修复远程同步表失败导致表无法同步的bug
  • 解决断块问题:close但未共识过的区块不从缓存中移除
  • 其它

Release for version 3.1.0

19 Oct 07:40

Choose a tag to compare

新增接口

  1. 新增加获取交易证明的接口 tx_merkle_proof 与验证接口tx_merkle_verify,用来验证交易在链上存在
  2. 增加tx_result接口,只获取交易在链上的共识结果

配置项

  1. 增加ledger_tx_tables配置项,可配置节点是否写Transactions表
[ledger_tx_tables] 
use_tx_tables = 1   #是否向transaction.db中存储交易内容,默认为1
save_tx_binary = 0  #Transactions表中是否存储交易详情,默认为0
use_trace_table = 1 #是否使用TraceTransactions表,默认为1
  1. 支持同步某账户下所有表
[sync_tables]
#表的发行帐户地址(只同步非加密表)
z9VF7yQPLcKgUoHwMbzmQBjvPsyMy19ubs 
#表的发行帐户地址 解密的私钥(加密表与非加密表都同步)
z9VF7yQPLcKgUoHwMbzmQBjvPsyMy19ubs xxWFBu6veVgMnAqNf6YFRV2UENRd3
  1. 一张表一个SLE的特性,新特性下一个账户下不再有只能建100张表的限制
[features]
TableSLEChange

共识优化

修改pop共识

  • init_time阶段只收集最高区块,init_time过后去要最高区块
  • init_time阶段要的区块,后面5次超时后不回滚到validated_ledger
  • 调整viewChange机制,修改达不成共识后一直abnormal的问题

性能优化

  • 解决数据量大时查询交易详情性能差的问题
  • 解决上链完后再进行表同步,内存增涨过快的问题
  • 解决上链完后再进行表同步,一张表同步不完其它表完全不同步的问题

功能优化

  1. 智能合约交易,合约执行过程中的异常可以在交易结果中返回
  • 原来只能返回tefCONTRACT_REVERT_INSTRUCTION错误码,错误信息是这个错误码对应的信息
  • 现返回tefCONTRACT_REVERT_INSTRUCTION错误码,错误信息是合约中require语句中自定义的错误
  1. 建表时对多个字段创建索引,之前是创建联合索引,现改为为每个加'index'关键字的字段单独创建一个索引
  2. 新增预编译合约功能,以及表的预编译合约接口
  3. 增加对交易时间、交易所在区块号自填充字段的支持

Release for version 3.0.0

20 May 08:55

Choose a tag to compare

1. 主子链支持

2. 共识可插拔

3. 密码算法用法修改

  • 国密与非国密算法不能混用,只能选择一种
  • 其它修改

Release for shard consensus version 2.0.0-shard

17 May 06:03

Choose a tag to compare

Release for new consensus version 1.1.4-pop

26 Feb 03:44

Choose a tag to compare

1. 主要修改

  1. 国密算法支持
  2. 预编译合约
  3. 单条交易最大支持500KB
  4. 表交易中新增 LONGTEXT 类型字段
  5. 内存泄露等Bug修复

2. 使用方式

  1. 新增配置项: [crypto_alg]
  2. 命令行接口修改: [validation_create] , [wallet_propose]
  3. SDK相关
    • Node.js SDK 更新到版本 0.70.1
    • JAVA SDK 更新到版本 1.5.7

Release for new consensus version 1.0.2-pop

27 Nov 07:03

Choose a tag to compare

主要修改

  1. 替换智能合约虚拟机执行器,由原先的evmjit替换为Interpreter,兼容新智能合约字节码
  2. 防止SQL注入
  3. raw字段查询条件支持null
  4. 增加字段sfTxsHashFillField,实现表交易的历史哈希信息记录
  5. Bug修复
  6. 提高内存的释放速度

Release for new consensus version 1.0.1-pop

03 Apr 03:07

Choose a tag to compare

1. 主要修改

  1. 共识算法由RPCA改为自研共识算法POP(Proof of Peers),详见POP 原理介绍
  2. 优化同步入库性能

2. 新共识版本特点

  1. Tps提升
  • 发送tps 700-1000 提升到 4000-6000
  • 共识tps 700-1000 提升到 4000-6000
  • 入库tps 500 提升到 2000以上
  1. 出块时间可配, 最小出块时间为1秒,交易能更快达成共识
  2. 可配置是否生成空区块,默认不生成空区块,解决空区块带来的储存空间浪费问题
  3. ChainSQL原有功能及调用方法基本保持不变

3. 使用方式

  1. 配置文件中增加配置项[pconsensus]
  2. 区块中包含共识出错的交易,增加查询区块中交易的接口 [ledger_txs]

4. 注意点

  1. 兼容旧共识版本数据
  2. 每个共识节点都维护自己的交易池,从不同节点获取到的账户Sequence可能不同,所以同一账户只能连接同一节点发送交易

New Release for version v0.30.6

01 Apr 10:49

Choose a tag to compare

1.文档修改

  • 首页添加中文说明文档

2.功能修改

  • 调整区块缓存时间以及数量的默认值

  • 新增加命令行接口

    • [ledger_objects] ,统计账本中各类别账户的个数
    • [node_size] ,查询和设置节点的缓存级别
    • [malloc_trim] ,释放由glibc维护的,未还给系统的内存
  • 配置文件中新增配置选项

    • [ledger_acquire] ,同步区块相关的配置。
      • skip_blocks ,表示同步区块时要跳过的区块。
    • [missing_hashes] ,手动配置节点获取不到区块哈希的区块,每一行配置一个对应的区块号和区块哈希,用冒号分隔区块号和区块哈希。
  • API支持

    • nodejs-api 更新到版本 0.6.65
    • chainsql-java-api 更新到版本 1.5.4

3.Bug修改

  • 修复windows release版本,部署合约,节点crash的问题。
  • 修复配置sqlite3数据库,表同步相关的问题。
  • 修复节点运行中,切换节点网络,造成节点crash的问题。
  • 修复节点启动时,数据库表同步的问题。
  • 修复多次循环创建以及删除同一表后,数据库表无法正常同步数据的问题。
  • 修复windows unity 版本编译的问题
  • 修复锁仓发行币能超过信任额度的问题
Morty Proxy This is a proxified and sanitized view of the page, visit original site.