Знание статуса транзакции в BigchainDB - PullRequest
0 голосов
/ 29 сентября 2018

Я отправил транзакцию в мой экземпляр BigchainDB.

bdb = BigchainDB(url_of_instance_with_port)

Если я запустил bdb.transactions.retrieve(txid), я получу следующее:

{'inputs': [{'owners_before': ['31LBKyjyd6GEA7R88mnHwthMf2ygtyB8xGDv1dZHfkqu'],
   'fulfills': None,
   'fulfillment': 'pGSAIB3NDv0SG46f7PYdtgzMezpc8Kq8F1nR0Y1Brwe5zbkQgUDWwwaRXj4yx9Z49f76L33feu9iUhNYUs0B3oPyLllUDZrHopIoHRt0FeBLd_5Yt-m1riyc3-0jYNdM0VAyGwAG'}],
 'outputs': [{'public_keys': ['31LBKyjyd6GEA7R88mnHwthMf2ygtyB8xGDv1dZHfkqu'],
   'condition': {'details': {'type': 'ed25519-sha-256',
     'public_key': '31LBKyjyd6GEA7R88mnHwthMf2ygtyB8xGDv1dZHfkqu'},
    'uri': 'ni:///sha-256;cfREMIEIaEdXKEfokspCcfiu9jSYvlfeq6zwdj2x3Fw?fpt=ed25519-sha-256&cost=131072'},
   'amount': '1'}],
 'operation': 'CREATE',
 'metadata': {...},
 'asset': {...},
 'version': '2.0',
 'id': '61b7f06a106d7db4e5cbaaf23f160d934c7e6e5ef6ab1df7c1eefca1def6ea18'}

Однако,bdb.blocks.get(txid) истекает, и состояния блока остаются прежними, т.е. даже нулевой блок не содержит транзакций. Почему?Как я могу отлаживать дальше?

Это поднимает еще один вопрос, который у меня возникает, каково понятие майнинг в BigchainDB?Когда создается блок?

1 Ответ

0 голосов
/ 30 сентября 2018

Если время ожидания вызова bdb.blocks.get(txid) истекло, это может быть ошибкой в ​​драйвере Python, если только сеть BigchainDB не была отключена, когда вы сделали вызов, и в этом случае, конечно, истекло время ожидания.Можете ли вы попробовать еще раз, то есть опубликовать новую транзакцию, а затем сделать bdb.blocks.get(txid).Если он снова истекает, то, возможно, попробуйте тот же HTTP-запрос с вашим веб-браузером, т.е. поместите что-то вроде этого в адресную строку:

http://your -hostname: port / api / v1 / blocks?action_id = blahblahblah

и нажмите Enter и посмотрите, работает ли он.Если нет, то что-то не так с узлом.Если он работает, значит, что-то не так с драйвером Python.

Если что-то не так с драйвером Python, пожалуйста, сообщите о новой проблеме на https://github.com/bigchaindb/bigchaindb-driver/issues/new

О майнинге

Узлы BigchainDB не делают ничего похожего на "майнинг", который делают некоторые узлы Биткойн или Эфириум.Узлы в сети BigchainDB достигают византийского отказоустойчивого (BFT) консенсуса другим способом, используя механизм консенсуса Tendermint .Теория и практика консенсуса BFT восходит к концу 1970-х годов (хотя терминология BFT возникла только в начале 1980-х), так что это не новая идея;Tendermint - это только один из новых согласованных алгоритмов / протоколов BFT.

...