chain33 icon indicating copy to clipboard operation
chain33 copied to clipboard

高度模块化, 遵循 KISS原则的区块链开发框架

Results 42 chain33 issues
Sort by recently updated
recently updated
newest added

## op-rollup #### 交易执行和聚合(Transaction execution and aggregation) * 由验证器节点打包执行二层交易, 对底层数据压缩后批量发布到主链 * 验证器节点可以单个中心化控制, 或者多个采用类POS质押相互监督 * 主链对压缩后的数据只做存储记录, 不会导致状态变化 #### 状态提交(State commitments) * 提交状态数据Merkle root, 涉及账户, 余额, 合约逻辑等, 记录状态变化过程 * 提交区块交易Merkle root, 用于交易存在Merkle...

由 #1240 手续费问题和平时的交易会因为阶梯手续费的原因被区块链拒绝掉,对于业务方来讲阶梯手续费这块的处理比较麻烦。 例如红包项目会遇到这个阶梯手续费问题导致发送失败,存证项目也会遇到该问题导致发送失败 存证这块会在发送前先保存数据库,失败解析原因后选择重发或者等待区块通顺再发,但是如果该交易包含了evm的手续费而该手续费不正确导致的失败,存证这块又要做额外的错误原因解析处理,而这个错误原因又不是明文的,EVM合约也无指导如何解析,所以目前无解,属于bug 红包项目没有做交易的存储,在区块链波动的情况下就会出现触发阶梯手续费导致手续费不足的情况,使得业务调用区块链失败且只能先人工处理,耗费开发的时间和精力 解决思路: 参考ETH的GasLimit设计,让业务设置一个最大的倍率限制,在实际手续费没超过这个 倍率*交易手续费 的情况下扣除实际手续费,超过了则失败,对于业务方的使用来讲会大大降低处理上链手续费问题的难度,而且也能一定程度的解决evm的手续费问题,减少预估手续费这一步骤,降低调用的复杂度

测试evm合约的时候,遇到交易执行失败的情况,查看区块链浏览器的交易日志里,没有错误的明文信息,且chain33文档里没有错误信息的解析方法,无法得知错误原因,无法定位排查

evm手续费需要另外收取,收取的手续费会并在chain33的手续费里,而这部分手续费目前有两个问题 第一个是手续费很高。 1.刚开始一笔发行单个nft的交易需要0.00351024 BTY,经过一段时间的测试后,一笔发行单个nft的交易手续费需要0.00505639 BTY,表明EVM的手续费会随着这个合约的交易越来越多导致后面的交易手续费会越来越高 2.一笔发行1w个nft的交易需要1.7961148 BTY,表明批量发行NFT的交易手续费会随着发行数量的增多而非线性增长 由于手续费超过10bty后,chain33的mempool会报错手续费太高 ErrTxFeeTooHigh 第一种情况下,这个合约执行了非常多的交易后,手续费会升到单个nft都超过10BTY,这个合约将无法再执行交易 第二种情况下,批量发行的数量会受限于手续费,不利于以后的扩展 第二个是手续费不能用gaslimit模式,而是要预估,那么对业务使用来讲会多了一个步骤,多了一份复杂度,且无法本地预估,需要远程调用,且每次调用的接口里需要加交易数据,交易里又需要加ABI这个比较庞大的数据(大约10kb),多次调用比较耗费带宽资源

## 目标 让用户更加方便的测试接口 ## 方案 类似 avax 添加 postman collections 参考第三方的: https://docs.avax.network/build/tools/postman-avalanche-collection ## 注意点 根据chain33 的api 接口文档 chain.33.cn 编制json 文件,文件格式参考: https://raw.githubusercontent.com/ava-labs/avalanche-postman-collection/master/Avalanche.postman_collection.json 编制环境变量文件 文件格式参考: https://raw.githubusercontent.com/ava-labs/avalanche-postman-collection/master/Example-Avalanche-Environment.postman_environment.json

命令行如何获取地址的中文助记词? 助记词是中文的 我想获取地址XXXX的助记词 命令行中如何输入?

* 比特元节点,正常同步过程中程序突然假死,通过pprof分析系统协程数量不断上升 ![image](https://user-images.githubusercontent.com/11565373/145776427-0aee9ca1-a2c7-4287-9f7f-860eae039f09.png) * 假死状态时, version, net is_sync, block last_header等命令可正常访问, mempool系列命令, net info卡死 * 手动Ctrl+C停止前台进程,程序没有退出,反而恢复为正常运行状态

--- FAIL: TestBlockChain (0.77s) chain_test.go:774: testLoadBlockBySequence curheight 11 lastseq 12 Block.Height 12 chain_test.go:815: ErrBlockHashNoMatch https://github.com/33cn/chain33/runs/4698256447?check_suite_focus=true

测试两个系统 广播的性能,带宽的节约程度等。

1. 目前chain33 推送接口只支持json rpc的推送, 2. rpc的推送必须指定一个url来接收,也就是一个用户订阅某个事件,还得写个服务端来接收订阅的内容,对于用户来说过于麻烦 3. 对于一些服务只允许连出去,不允许连进来的特殊场景下,则无法使用此功能。