【问题标题】:Rails 5.1 store cryptocurrency values in postgresql databaseRails 5.1 在 postgresql 数据库中存储加密货币值
【发布时间】:2018-02-11 12:50:13
【问题描述】:

我想制作一个 Rails 应用程序来跟踪我的加密货币。

您将如何将值保存在数据库中? 您会选择哪种数据类型字段?

我考虑过使用 rails-money gem,但只有 BTC(比特币)被设置为货币。

感谢您的帮助

本尼

【问题讨论】:

    标签: ruby-on-rails-5.1 postgresql-10 cryptocurrency


    【解决方案1】:

    您的架构是什么样的?我会有类似 Balances 和 CoinTypes 表的东西。

    在余额表中,您可以将加密金额跟踪为整数(就像对美元的整美分所做的那样,这意味着 Satoshi 对于 BTC 的金额)。您需要能够在此列中保存大量数字。我会做类似t.integer :coin_amount :int5, :limit => 5

    然而,在每个硬币下的硬币类型表中,您可以跟踪除以 crypto_amount 列所需的小数位数。

    Balances
    
    | ID            | COIN_AMOUNT   |TYPE  | DESCRIPTION |
    | ------------- |---------------|------|-------------|
    | 1             | 2300000000000 | 1    | "Ledger"    |
    | 2             | 100000000     | 2    | "Coinbase"  |
    | 3             | 100000000     | 2    | "Gemini"    |
    
    
    CoinTypes
    
    | ID            | NAME          |DECIMALS  |
    | ------------- |---------------|----------|
    | 1             | "Ethereum"    | 18       |
    | 2             | "Bitcoin"     | 8        |
    

    现在您知道您在 Gemini 和 Coinbase 上分别持有 1 BTC。您还可以计算出您持有的以太坊数量为 0.0000023。我不会将美元金额存储在数据库中,而是使用您持有硬币的任何服务的 api 来计算它们。

    但对我来说,一个危险信号是您正在跟踪我认为是外部服务的余额。请记住,如果您不管理密钥,它们就不是您的硬币。

    【讨论】:

    • 我没有余额架构,因为现在我不知道我必须选择哪种数据字段类型。像你一样,我想存储多个硬币。我的模型是:-硬币->名称,符号,uid-钱包->名称,地址,描述-交易->这是为了以后,将硬币从一个钱包转移到另一个钱包(跟踪来自和去往交易所的交易, ...) 类似 cointracking.info 之类的东西,但不是那么全面。
    • 您需要考虑要保留多少个小数位。正如我所展示的,您将需要不同的数据类型来准确地将以太坊和比特币值存储为最小面额。我会阅读 this api article 在 Rails 中的数据类型。
    猜你喜欢
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多