【发布时间】:2018-09-05 04:43:24
【问题描述】:
在过去的几周里,我尝试编写自己的区块链,只是为了更好地理解整个概念。
你可以在这里找到我的代码:https://github.com/Snixells/js-blockchain。
我已经实现了 Blockchain + Transactions 是通过 nodeJs 数组和 JSON 创建的。
我现在正在处理的问题是数据没有被保存。我想在(可能)快速服务器上运行整个区块链并通过 RESTful API 访问它。因此,我需要一种将区块链存储在某处的方法。我也已经有了一些想法,但似乎没有一个是好的。
- 我可以将整个链保存为 JSON 文件,并始终在需要时打开它,然后保存它。但这在以后根本不会扩展
- 我曾考虑将每个块保存为单个 JSON 文件,但我认为这也不会很好。
- 我可以使用任何类型的数据库,例如 RethinkDB 或 MongoDB,但这与区块链作为数据库本身的整个想法相冲突。
我很想听听一些答案,例如,我可以使用哪些框架等。或者也许有关于如何存储数据库的任何想法。 谢谢你的帮助:)
【问题讨论】:
-
第 1 点和第 2 点不能免于第 3 点,事实上,它们几乎相同,只是您存储数据的方式不同 - 您需要有一个地方来存储区块链,但如果它不是去中心化的只有 1 个节点,但你必须从某个地方开始。 medium.com/@brendanrius/…
-
所以我认为将数据存储在数据库中没有任何问题,它只是没有大量节点的去中心化区块链(即每个网络都有一个区块链副本)。
-
只需将新块附加到单个文件,“几乎是 JSON”。然后,您可以使用标准文件访问命令来提供大分类帐文件的块,例如尾部。仅追加记录速度很快。
-
你是正确的,在你的服务器上存储一个 json 文件不会是可扩展的,所以我会改用数据库。您需要链接每个块
-
好的,感谢您的快速答复。我将尝试使用数据库实现,并且仅使用追加将区块链保存在 json 文件中!虽然我更喜欢以不同的方式保存数据...如果您有任何其他想法,请告诉我!
标签: javascript json node.js express blockchain