Насколько я понимаю, мне нужно хешировать информацию о каждой транзакции и построить дерево Меркла. После этого мы получаем корневой хеш, объединяем его с одноразовым номером и хешируем это значение и проверяем, имеет ли оно определенное количество нулей в начале.
Это набросок этой реализации, однако зачем мне использовать общедоступные параметры для проверки и т. д. Я их не использовал, нужно ли мне также проверять каждую транзакцию? Реализация дерева Меркла правильная, но я не получаю правильное значение хеш-функции из блока, в чем может быть причина?
# Function to check if PoW is valid
def CheckPow(p, q, g, PoWLen, TxCnt, filename):
# Read the transaction file
with open(filename, 'r') as file:
lines = file.readlines()
nonce = lines[0].strip().split(":")[1].strip()
lines = lines[1:]
# Extract transactions from the file
txs = []
for i in range(TxCnt):
# Here you would extract the transaction data and hash it (simplified here)
tx_data = ("".join(lines[i*7+3: i*7+7]))
print(tx_data)
txs.append(tx_data)
# Build the Merkle tree and get the root hash (Hr)
merktree= tree.MerkleTree(txs)
H_r = merktree.get_merkle_root()
print("H_r:",H_r)
print(H_r.hex())
# Convert nonce to bytes and concatenate with Hr
nonce = int(nonce)
nonce_bytes = nonce.to_bytes((nonce.bit_length() + 7) // 8, byteorder='big')
#print(nonce_bytes)
Hr_nonce = H_r + nonce_bytes
# Compute the SHA3-256 hash of the concatenation
hash_value = sha3_256(Hr_nonce).hexdigest()
print(hash_value)
return hash_value
Подробнее здесь: https://stackoverflow.com/questions/793 ... ransaction
Проверка доказательства работы в транзакции биткойнов ⇐ Python
Программы на Python
-
Anonymous
1735017246
Anonymous
Насколько я понимаю, мне нужно хешировать информацию о каждой транзакции и построить дерево Меркла. После этого мы получаем корневой хеш, объединяем его с одноразовым номером и хешируем это значение и проверяем, имеет ли оно определенное количество нулей в начале.
Это набросок этой реализации, однако зачем мне использовать общедоступные параметры для проверки и т. д. Я их не использовал, нужно ли мне также проверять каждую транзакцию? Реализация дерева Меркла правильная, но я не получаю правильное значение хеш-функции из блока, в чем может быть причина?
# Function to check if PoW is valid
def CheckPow(p, q, g, PoWLen, TxCnt, filename):
# Read the transaction file
with open(filename, 'r') as file:
lines = file.readlines()
nonce = lines[0].strip().split(":")[1].strip()
lines = lines[1:]
# Extract transactions from the file
txs = []
for i in range(TxCnt):
# Here you would extract the transaction data and hash it (simplified here)
tx_data = ("".join(lines[i*7+3: i*7+7]))
print(tx_data)
txs.append(tx_data)
# Build the Merkle tree and get the root hash (Hr)
merktree= tree.MerkleTree(txs)
H_r = merktree.get_merkle_root()
print("H_r:",H_r)
print(H_r.hex())
# Convert nonce to bytes and concatenate with Hr
nonce = int(nonce)
nonce_bytes = nonce.to_bytes((nonce.bit_length() + 7) // 8, byteorder='big')
#print(nonce_bytes)
Hr_nonce = H_r + nonce_bytes
# Compute the SHA3-256 hash of the concatenation
hash_value = sha3_256(Hr_nonce).hexdigest()
print(hash_value)
return hash_value
Подробнее здесь: [url]https://stackoverflow.com/questions/79304779/checking-proof-of-work-in-bitcoin-transaction[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия