* [bitcoin-dev] Clarification on the use of getblocktemplate RPC method. @ 2021-09-09 12:54 Mike Rosset 2021-09-09 17:36 ` Luke Dashjr 0 siblings, 1 reply; 2+ messages in thread From: Mike Rosset @ 2021-09-09 12:54 UTC (permalink / raw) To: bitcoin-dev Hello all, I recently went down the bitcoin protocol rabbit hole. I wanted to use GNU guile scheme to experiment with bitcoin. I initially started by creating a toy bitcoin miner but I've run into some inconsistencies with the documentation found on https://en.bitcoin.it/wiki/Getblocktemplate. Namely with creating the templates merkle root. From my understanding a coinbase transaction should have the transactions data concatenated before creating the merkle root. But getblocktemplate does not have a json cointbasetxn field. So I'm not sure how to create a coinbase transaction without that. I have a test template response data found here. https://raw.githubusercontent.com/mrosset/prospect/master/test-suite/data.json and using a modified version of the merkle python reference script found on the wiki page. see https://github.com/mrosset/prospect/blob/master/scripts/merkle.py . I'm able to create a merkle root with the hash c5fff939f628a04428c080ed5bd7cd9bc0b4722b2522743049adb18213adf28a but that's minus the coinbase transaction. So far I'm able to replicate this hash using the test data in guile. But I'd like to sanitize this so that I'm using a coinbase transaction and making sure the python and guile merkle roots match. In short how do I get the coinbase transaction without the coinbasetxn field existing? Mike ^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [bitcoin-dev] Clarification on the use of getblocktemplate RPC method. 2021-09-09 12:54 [bitcoin-dev] Clarification on the use of getblocktemplate RPC method Mike Rosset @ 2021-09-09 17:36 ` Luke Dashjr 0 siblings, 0 replies; 2+ messages in thread From: Luke Dashjr @ 2021-09-09 17:36 UTC (permalink / raw) To: Mike Rosset, Bitcoin Protocol Discussion https://github.com/bitcoin/libblkmaker/blob/master/blkmaker.c#L172 On Thursday 09 September 2021 12:54:18 Mike Rosset via bitcoin-dev wrote: > Hello all, > > I recently went down the bitcoin protocol rabbit hole. I wanted to use > GNU guile scheme to experiment with bitcoin. I initially started by > creating a toy bitcoin miner but I've run into some inconsistencies with > the documentation found on > https://en.bitcoin.it/wiki/Getblocktemplate. Namely with creating the > templates merkle root. > > From my understanding a coinbase transaction should have the > transactions data concatenated before creating the merkle root. But > getblocktemplate does not have a json cointbasetxn field. So I'm not > sure how to create a coinbase transaction without that. > > I have a test template response data found here. > https://raw.githubusercontent.com/mrosset/prospect/master/test-suite/data.j >son and using a modified version of the merkle python reference script found > on the wiki page. see > https://github.com/mrosset/prospect/blob/master/scripts/merkle.py . I'm > able to create a merkle root with the hash > c5fff939f628a04428c080ed5bd7cd9bc0b4722b2522743049adb18213adf28a but > that's minus the coinbase transaction. > > So far I'm able to replicate this hash using the test data in guile. But > I'd like to sanitize this so that I'm using a coinbase transaction and > making sure the python and guile merkle roots match. > > In short how do I get the coinbase transaction without the coinbasetxn > field existing? > > Mike > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-09-09 17:41 UTC | newest] Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-09-09 12:54 [bitcoin-dev] Clarification on the use of getblocktemplate RPC method Mike Rosset 2021-09-09 17:36 ` Luke Dashjr
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox