To be fair, kano is a valued coder and contributor to cgminer and its "defence" as it were, on these most unfriendly forums. However, he should most certainly not be considered the public face of cgminer, which I take full responsibility for. Kano has been, and will be, extremely valuable to the cgminer code, but we have also had our disagreements, and he has humbly accepted no as an answer since I remain the maintainer of the code. On the other hand, lack of humility is precisely why we are where we are with a hostile fork of cgminer. I and Kano have admitted we were wrong whenever appropriate. I don't want to play tit for tat and name calling and dick size comparisons, but the bottom line is, please don't think Kano is the face of cgminer. Look for where I have personally "attacked" someone on the forums before making a judgement about the public face of cgminer.

...and i really thought i could get more information on GBT here.. found myself in a flamewar though. Honestly guys.. noone here is giving a good example.

Sorry that I added to the spam. But there is a reason these forums are so unfriendly. kano has a habit of trolling, name calling, religious harassment, etc. etc. I don't know why he hasn't been banned yet. But if noone says anything, things won't get any better.

Hey guys, sorry to interrupt your discussion about penis sizes, but I have a question about the workings of getblocktemplate .

Recently I have been working on a small getblocktemplate miner implementation in JavaScript/PHP, mainly to understand how the bitcoin works internally a lot better. The Wiki page about getblocktemplate has helped me a lot, but there is one crucial thing I cannot figure out:

How to send a proper block template request to a pool. (This is the request a mining program makes to the pool to indicate it wants to mine something)Everything I've tried thus far makes the pool return

I have tried a multitude of different variations on this, but it still doesn't work.

Problems I stumble across:1. I'm unsure if the "coinbasetxn", "workid", "coinbase/append" and even the whole "capabilities" are optional, or that the brackets in the example are actually part of the syntax to forward the different arguments as an array (as they are usually used in JSON).2. the BIP 22 does not list this request at all, only telling me about two non-optional arguments.3. Analyzing the python-blkmaker source code, I find another argument called "maxversion". This is not mentioned on the wiki page and not on the BIP 22 page or anywhere else either.

Problems I stumble across:1. I'm unsure if the "coinbasetxn", "workid", "coinbase/append" and even the whole "capabilities" are optional, or that the brackets in the example are actually part of the syntax to forward the different arguments as an array (as they are usually used in JSON).

It's all optional, but necessary for some servers which make decisions on what features to use in your template.

2. the BIP 22 does not list this request at all, only telling me about two non-optional arguments.3. Analyzing the python-blkmaker source code, I find another argument called "maxversion". This is not mentioned on the wiki page and not on the BIP 22 page or anywhere else either.

Problems I stumble across:1. I'm unsure if the "coinbasetxn", "workid", "coinbase/append" and even the whole "capabilities" are optional, or that the brackets in the example are actually part of the syntax to forward the different arguments as an array (as they are usually used in JSON).

It's all optional, but necessary for some servers which make decisions on what features to use in your template.

2. the BIP 22 does not list this request at all, only telling me about two non-optional arguments.3. Analyzing the python-blkmaker source code, I find another argument called "maxversion". This is not mentioned on the wiki page and not on the BIP 22 page or anywhere else either.

These are part of BIP 23 mainly.

[/quote]Hmm... Yes, in BIP 23 more optional parts are noted. However, the structure of the JSON-RPC request isn't outlined anywhere. Unless someone had worked with JSON-RPC before they wouldn't know about the exact way to invoke this. Maybe a link to the JSON-RPC Wikipedia page would be nice .

In the meantime, I got it working. The problem was that I parsed all my JSON objects to post parameters. (i.e. vara=valuea&varb=valueb). This is the way AJAX requests are normally done from Javascript or by any browser submitting a form. It never occured to me that the solution would be to just put the JSON-RPC objects as a string in the postdata of the HTTP request, and voilà, the server was able to parse it and returned a block list.

So I got it working! My Javascript/PHP miner is mining, albeit extremely slow(and with some stops where my host tells me I've done too much requests from one IP in a short time), but it works. I have yet to submit my first real share to the server, and probably some other bugs will pop up later down the line, but for now it is hashing. Hooray! :-)

Hello, i am looking at making my own poll app based on GWT, but got confused at some pint and still can't figure it out. I've read BIP 22 and 23, but some real world example would be welcome.bitcoind returns:

Hello, i am looking at making my own poll app based on GWT, but got confused at some pint and still can't figure it out. I've read BIP 22 and 23, but some real world example would be welcome.bitcoind returns:

Yes, that was my understanding too (glad it's correct), but where may i find information about the coinbaseaux flags?BIP 22 states 'data that SHOULD be included in the coinbase's scriptSig content', but no mention of flags in https://en.bitcoin.it/wiki/Transactions

P.S.In short my idea was to have each frontend worker have it's own address for coinbase (to avoid share duplication) and have the blocks valid/accepted even if they submit it to another bitcoind instance as backend.

Hello, sorry for maybe stupid question. Let's suppose that I run two instances of bitcoind on my server. Can I accept block template from first instance but submit share to second? If I understand it correct: getblocktemplate is stateless in terms of blockchain, and pool sever can choose which transactions to include in candidate block. And can submit blocks to any bitcoind instance.

Is it possible to load balance between two bitcoind instances using getblocktemplate?