BCSkill (Block chain skill )
区块链中文技术社区

只讨论区块链底层技术
遵守一切相关法律政策!

PrometheusAlert是开源的运维告警中心消息转发系统

PrometheusAlert是开源的运维告警中心消息转发系统,支持主流的监控系统Prometheus、Zabbix,日志系统Graylog2,Graylog3、数据可视化系统Grafana、SonarQube。阿里云-云监控,以及所有支持WebHook接口的系统发出的预警消息,支持将收到的这些消息发送到钉钉,微信,email,飞书,腾讯短信,腾讯电话,阿里云短信,阿里云电话,华为短信,百度云短信,容联云电话,七陌短信,七陌语音,TeleGram,百度Hi(如流)等。

https://feiyu563.gitbook.io/prometheusalert/

类似于以太坊 infura 的服务,为 Conflux 网络提供 RPC 端点。

开源地址:https://github.com/Conflux-Chain/confura

优势

与运行全节点相比,Confura 通过提供一些增强功能,可以轻松构建高性能、可扩展且可用的 RPC 服务。

远程过程调用改进

  • 一些高频 RPC 方法(例如cfx_getStatus和 )的过期缓存cfx_epochNumber。
  • 事件日志的链外索引,通过它来处理getLogs(和cfx_getLogs)eth_getLogs,而不是直接由完整节点处理。该索引由传统数据库支持,它允许我们对更多数据进行索引和查询,而不会增加全节点上布隆过滤器所经历的误报开销。甚至可以在单个请求中检索某些合约的所有事件日志(总量小于10,000)。
  • 每个完整节点的 Pub/Sub 共享代理订阅因此可以支持更多并发会话。
  • 通过将过滤器“状态”(目前仅事件日志)的存储从完整节点迁移到我们称为“虚拟过滤器”的新后端系统的内存和数据库中,对标准过滤器 API 进行了改进,以便更可靠、可以实现高性能和更可定制(例如,过滤器更改的长轮询超时)的过滤器 API。

节点集群管理

  • 健康监控,消除最新区块高度落后于整体平均水平、心跳RPC失败或超时限制等不健康节点。
  • 通过远程 IP 地址实现一致的哈希负载平衡。
  • 通过专用节点池隔离工作负载。
  • JSON-RPC 用于管理(添加/列表/删除)节点。

速率限制

  • 用于添加/删除/管理自定义速率限制策略和 API 密钥的命令行工具集。
  • 支持使用fixed window或token bucket算法对每个 RPC 方法进行速率限制。

docker-compose启动时创建网络失败问题解决方法

在同一套环境中跑了很多个项目都是用 docker-compose的方式启动的,导致创建的自定义网络过多出现下面的报错

Error response from daemon: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network
查看自定义网络

[root@lyj ~]# docker network ls |wc -l
31
这是因为 Docker 默认支持 30 个不同的自定义 bridge 网络,如果超过这个限制,就会提示上面的错误。你可以使用命令docker network ls来查看你创建的网络,然后通过命令docker network prune来移除没有使用的网络。

解决

docker network ls
docker network prune

参考
https://blog.csdn.net/L13763338360/article/details/112250564
https://www.cnblogs.com/liyongjian5179/archive/2019/03/19/10559289.html

Git 修改.Submodule文件 url 生效

  1. 修改 .gitmodules 文件中对应模块的url属性;
  2. 使用 git submodule sync 命令,将新的URL更新到文件.git/config;
  3. 再使用命令初始化子模块:git submodule init
  4. 最后使用命令更新子模块:git submodule update

zkSync 根据l2到l1跨链hash查询CommitBlocks,PublishProofBlocksOnchain,ExecuteBlocks各个L1层交易hash

跨链交易发起:0x0bbbcf153f17ec0e1f12d698bbc64f9d242bc1cd1312dd5f34febf0e6cb6601a

  1. 根据tx_hash查看表l2_to_l1_logs,得到所在的miniblock_number15841
  2. 根据上面的miniblock_number,根据number查看表miniblocks
    select * from miniblocks where number=15841;
  3. 得到当前跨链交易所在l1_batch_number为7670
  4. 根据l1_batch_number,以number查看l1_batches
    select number,is_finished,eth_commit_tx_id,eth_prove_tx_id,eth_execute_tx_id from l1_batches where number=7670;

    得到

    number | is_finished | eth_commit_tx_id | eth_prove_tx_id | eth_execute_tx_id 
    --------+-------------+------------------+-----------------+-------------------
    7670 | t           |            41073 |           41148 |             41151
  5. 根据eth_commit_tx_id查询eth_txs,得到CommitBlocks对应交易信息
    select nonce,contract_address,tx_type,has_failed,sent_at_block,tx_status,confirmed_eth_tx_history_id from eth_txs where id=41073 ORDER BY updated_at DESC limit 1;
    nonce |              contract_address              |   tx_type    | has_failed | sent_at_block | tx_status | confirmed_eth_tx_history_id 
     -------+--------------------------------------------+--------------+------------+---------------+-----------+-----------------------------
      41091 | 0x5e3e5f6ef0e21f0cf5b4c3acd3cf29740b1cbbd8 | CommitBlocks | f          |               | Done      |                       43194
  6. 根据confirmed_eth_tx_history_id得到CommitBlocks对应交易hash
    select eth_tx_id,tx_hash,confirmed_at from eth_txs_history where id=43194  ORDER BY updated_at DESC limit 10;
    eth_tx_id |                              tx_hash                               |        confirmed_at        
     -----------+--------------------------------------------------------------------+----------------------------
          41073 | 0x0b01e199877faef52b95477119f53bf546a2915bc903132331f41542e58da53d | 2023-09-18 03:50:19.059576
  7. 同理查询eth_prove_tx_ideth_execute_tx_id得到对应的交易hash