V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dw2693734d
V2EX  ›  以太坊

用 PostgreSQL 来存储以太坊上的所有交易 transaction,如何分表分库?

  •  
  •   dw2693734d · 2023-02-27 15:57:26 +08:00 · 2480 次点击
    这是一个创建于 654 天前的主题,其中的信息可能已经有所发展或是发生改变。

    第一,是硬盘存储空间,大概需要多大

    第二,能够快速返回某一个 token 的 transaction 记录,不到 1s

    虽然有第三方的服务,比如 dune.com ,但是用着始终不方便。

    15 条回复    2023-03-08 13:39:53 +08:00
    unnamedhao
        1
    unnamedhao  
       2023-02-27 19:51:08 +08:00 via iPhone
    几年前全节点数据就大几百 G 了,存库应该只多不少吧。
    另外为了把数据灌到库里,除了库还得部署一套节点?
    stabc
        2
    stabc  
       2023-02-27 19:54:50 +08:00
    这种场景 NOSQL 更适合
    cxh116
        3
    cxh116  
       2023-02-27 20:40:01 +08:00   ❤️ 1
    erc20 token 的 transaction 与 eth 本身的 transaction 不是同一个东西.

    token 的 transfers transaction 是合约调用,直接在 eth node 查不出来的,只能查 Transfer event log https://docs.openzeppelin.com/contracts/2.x/api/token/erc20#IERC20-Transfer-address-address-uint256-

    1. 如果只存 token transfers transaction 应该几百 G 差不多了,没存过,所以只能做几简单的估计,之前个人处理 eth transaction ,是把 input 等大字段也存起来了.
    2. eth transaction 目前已经是 10 亿级别了,如果按照每个 eth transaction 有 100 条 token transaction,初步估计数据库有 1000 亿左右. 数据分库分区不熟悉,就不瞎建议了,可以尝试先单表存下来,看有没有瓶颈.
    dw2693734d
        4
    dw2693734d  
    OP
       2023-02-27 22:48:28 +08:00
    @unnamedhao 对,还要节点
    litguy
        5
    litguy  
       2023-02-28 07:55:57 +08:00
    其实你这种场景,NOSQL 更好,Cassandra 之类的 CQL 语言也很好用
    rimutuyuan
        6
    rimutuyuan  
       2023-02-28 10:10:50 +08:00
    我们用的 tidb
    dw2693734d
        7
    dw2693734d  
    OP
       2023-02-28 11:44:51 +08:00
    @litguy NOSQL 的性能更好吗,不太懂😂
    litguy
        8
    litguy  
       2023-02-28 12:29:13 +08:00
    @dw2693734d 类似 Cassandra 这样的 NOSQL 又不需要分布式事务支持,性能要好得多,而且不用考虑分库分表这些,至少 10 亿条记录前,不用太在意
    dw2693734d
        9
    dw2693734d  
    OP
       2023-02-28 13:59:42 +08:00
    @litguy 略微懂了,谢谢!
    huadaonan
        10
    huadaonan  
       2023-02-28 15:02:40 +08:00
    @dw2693734d 要不要组个队
    dw2693734d
        11
    dw2693734d  
    OP
       2023-02-28 15:31:36 +08:00
    @huadaonan 要要要
    huadaonan
        12
    huadaonan  
       2023-03-02 12:32:37 +08:00
    @dw2693734d 好啊,加我 tg ,先初步沟通下
    dw2693734d
        13
    dw2693734d  
    OP
       2023-03-05 22:11:41 +08:00
    @huadaonan 你 tg 多少
    sicssss
        14
    sicssss  
       2023-03-07 17:42:50 +08:00
    我在做 nft 聚合订单簿, 可以加个 tg 吗 佬 @maxcute
    huadaonan
        15
    huadaonan  
       2023-03-08 13:39:53 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3181 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:42 · PVG 18:42 · LAX 02:42 · JFK 05:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.