Все ли реализации массива Blockchain неверны? - PullRequest
0 голосов
/ 08 января 2019

Я нашел много реализаций Blockchain в сети, но являются ли они истинными Blockchain, которые могут масштабироваться? Здесь мы можем видеть, что блокчейн запускается как массив

var blockchain = [getGenesisBlock()];

Здесь мы можем увидеть ту же реализацию:

constructor() {
        this.chain = [this.createGenesis()];
    }

Эта статья также рекомендует:

constructor(genesisNode) {
     this.chain = [this.createGenesisBlock()];

Однако готова ли какая-либо из этих реализаций к масштабированию?

Технически, согласно maerics ,

максимальная длина массива в соответствии с ECMA-262 5-е издание спецификация связана беззнаковым 32-разрядным целым числом из-за Абстрактная операция ToUint32, поэтому максимально длинный массив может иметь 232-1 = 4 294 967 295 = 4,29 млрд элементов.

Размер не проблема. Ethereum использовал «только» 7 миллионов блоков , биткойн «только» 500k , поэтому места на будущее достаточно. Реальная проблема, о которой я думаю, это то, сколько времени потребуется, чтобы прочитать последний элемент массива, и будет ли это масштабируемым? В блокчейне структуре «Блок» всегда нужно читать хэш последнего блока, поэтому я предполагаю, что при масштабировании это занимает все больше и больше времени.

Что бы делали Биткойн и / или Эфириум, если в их массиве Блоковых блоков больше нет места для хранения блоков? Будет ли конец цепочки блоков там?

1 Ответ

0 голосов
/ 08 января 2019
  • Проблема масштабируемости возникает из-за стоимости проверки транзакций и достижения консенсуса между узлами. Так что здесь проблема не в стоимости доступа к определенному блоку.
  • Блокчейны не массивы . Концептуально думайте об этом больше как Связанный список
  • Существует без ограничения на количество блоков (хотя есть один для количества монет). Пространство для хранения этих блоков также не ограничено.

Чтобы ответить на вопрос

Да, все реализации, приведенные в вопросе, неверны / недостаточны для работы блокчейна. Для некоторых реализаций вы можете обратиться к хранилищу биткойнов или Ethereum's

...