class Block:
def __init__(self, index, transactions, previous_hash):
self.index = index
self.transactions = transactions
self.previous_hash = previous_hash
self.timestamp = time()
class BlockChain:
self.chain = []
def new_block(self, transactions):
pass
допустим, я совершаю новую транзакцию {'sender': 'bob', 'receiver': 'alice', 'amount': 2}
создаст ли эта транзакция новый блок в цепочке (т.е. self.chain.append(new_block_which_has_above_transaction
)
или он получит последний блок в цепочке (т.е. len(self.chain)-1
) и изменит self.transactions
этого блока.
https://hackernoon.com/learn-blockchains-by-building-one-117428612f46 В этой статье автор использует self.transactions
в качестве списка, и здесь я запутался.
Насколько я понимаю, каждая новая транзакция будет создавать новый блок с этой транзакцией, и этот блок будет добавлен в цепочку блоков. если кто-то добывает новый блок, несколько монет будут переданы майнеру в качестве транзакции. это правильный поток? или в блоке может быть несколько транзакций? Если да —
-
1) должен ли генезис-блок иметь несколько транзакций?
2) что, если два узла имеют разные цепочки (я имею в виду, что нам нужно решить с помощью алгоритма консенсуса), но между тем, если этот узел обрабатывает транзакцию, тогда хеш этого блока будет изменен, а затем что произойдет с цепочкой соседнего узла?
Биткойн устанавливает ограничение в 2400 транзакций для каждого из своих блоков, но не все блоки имеют это количество. Люди транслируют транзакции майнерам, а майнеры помещают транзакции в блоки и распределяют их.
Что касается вашего вопроса:
На веб-сайте, на который вы связались, говорится, что блоки должны быть неизменяемыми. , поэтому вам не следует добавлять новую транзакцию в список блоков. Кроме того, это изменит значение хэша, который вам нужно найти для проверки блока.
Вам решать, сколько транзакций вы хотите на блок, одну или несколько. Что бы я сделал, так это собрать несвязанные транзакции, поместить их в блок и добавить этот новый блок в цепочку.
The website you linked to says that blocks should be immutable,
так как мне добавить новую транзакцию? Как вы собираете несвязанные транзакции и храните их? Собираете ли вы все транзакции, произошедшие за час, и храните их временно, а через час вы создаете новый блок и помещаете в него все транзакции? — person Ashraful Islam; 01.01.2018да. Вы собираете транзакции, а затем через час группируете их в блок — person Ashraful Islam; 01.01.2018