Как определяется блок (размер, количество транзакций)?

Изучая графики Blockchain.info , я узнал, что:

  • Средний размер блоков увеличивается (max=1MB).
  • Также увеличивается количество транзакций в одном блоке.

После прочтения некоторых статей по теме, правильно ли сказать, что

  • Один блок определяется (решается) майнингом. Если у меня есть сверхмощный компьютер, я могу майнить так быстро, что один блок будет содержать только одну транзакцию. (Я пытаюсь понять, есть ли связь между количеством транзакций и скоростью майнинга.)
  • Транзакции в одном блоке не связаны между собой. Таким образом, майнеры решают одну транзакцию, но один блок.

Ответы (3)

Чтобы блок был действительным, он должен удовлетворять следующим условиям:

  • Общий размер блока не должен превышать 1 МБ.
  • Должна существовать хотя бы 1 транзакция, называемая транзакцией coinbase.
  • Блок должен удовлетворять доказательству работы.
  • Блок должен ссылаться на допустимый блок как на предыдущий блок.

Есть разные ограничения, но это основные. То, что вы назвали «решенным майнингом», — это то, что называется подтверждением работы. То, что вы назвали хотя бы одной транзакцией, — это ограничение, согласно которому должна присутствовать транзакция coinbase. Я рекомендую вам прочитать спецификацию , чтобы узнать больше.

Если вы майните блок, блок будет содержать вашу «транзакцию». Но он может (и будет в настоящее время) содержать более 1 транзакции. Транзакции в одном блоке не обязательно должны быть связаны друг с другом. Они могут быть связаны, если в одном блоке есть транзакции из (1) A->B и (2) B->C. Затем эти две транзакции связаны, поскольку транзакция (2) имеет ссылку на транзакцию (1).

Один блок определяется (решается) майнингом. Если у меня есть сверхмощный компьютер, я могу майнить так быстро, что один блок будет содержать только одну транзакцию. (Я пытаюсь понять, есть ли связь между количеством транзакций и скоростью майнинга.)

Блоки действительно являются продуктом майнинга. Новые блоки генерируются в случайном процессе, который иногда завершается очень быстро, а иногда создание блока занимает много времени. Когда майнеры получают новый блок, им требуется некоторое время, чтобы проверить блок и выяснить, какие транзакции были включены. Если они найдут блок очень быстро, то есть до того, как последний блок будет проверен, и они должны были включить транзакции в свой блок, они могли случайно включить транзакцию, которая уже была подтверждена в последнем блоке. Это приведет к тому, что их новый блок станет недействительным! Поэтому многие майнеры перестраховываются и включают требуемую транзакцию coinbase в блоки только тогда, когда они только начинают пытаться построить на недавно обнаруженном блоке.
Как только майнеры полностью подтвердили предыдущий блок, они узнают, какие транзакции остались неподтвержденными, и могут заполнить свой блок без опасности создания недействительного блока.

Транзакции в одном блоке не связаны между собой. Таким образом, майнеры решают одну транзакцию, но один блок.

Как правило, каждая транзакция существует сама по себе, поэтому порядок транзакций не имеет значения для большинства транзакций. Есть два исключения: 1. Транзакция coinbase должна быть на первой позиции. 2. Если есть транзакции, которые строятся на других транзакциях в том же блоке, они должны быть включены в блок в правильном порядке. Т.е. если транзакция Bпроводит вывод транзакции A, Aона должна стоять раньше Bв списке транзакций. Все транзакции проверяются майнером, прежде чем они будут включены в блок, потому что недействительная транзакция сделает блок недействительным, а майнер не получает вознаграждение за недействительный блок. :)