XaiZou (OP)
Member
Offline
Activity: 80
Merit: 10
|
|
October 04, 2015, 12:22:13 AM |
|
I offer a bounty for anyone who develop/write a script/code/program to dump all known public keys ( not hash160 ) from bitcoin blockchain. You can modify/edit/hack/add feature to the following project that i believe its much better to use than starting from scratch. https://github.com/znort987/blockparser
|
|
|
|
achow101
Staff
Legendary
Offline
Activity: 3444
Merit: 6737
Just writing some code
|
|
October 04, 2015, 03:10:12 PM |
|
How much is the bounty?
|
|
|
|
OmegaStarScream
Staff
Legendary
Offline
Activity: 3528
Merit: 6183
|
|
October 04, 2015, 03:15:35 PM |
|
How much is the bounty and should we use your project ? because I don't know C & C++ honestly so not going be able to use it however I may use C# AND GIVE IT a shoot .
|
|
|
|
XaiZou (OP)
Member
Offline
Activity: 80
Merit: 10
|
|
October 04, 2015, 03:46:12 PM |
|
How much is the bounty?
How much is the bounty and should we use your project ? because I don't know C & C++ honestly so not going be able to use it however I may use C# AND GIVE IT a shoot .
Bounty is 200$ , that is not my project but it is a very good code to hack. you can go ahead and try with C# . https://github.com/znort987/blockparser/blob/4920bba202c648e83abade4a756edab03526524e/util.cpp#L248// Output script commonly found in block reward TX, pays to explicit pubKey if( likely( 65==script[0] && // OP_PUSHDATA(65) 0xAC==script[scriptSize-1] && // OP_CHECKSIG 67==scriptSize ) )
|
|
|
|
unhappyuser
Newbie
Offline
Activity: 13
Merit: 0
|
|
October 04, 2015, 03:49:51 PM Last edit: October 04, 2015, 04:01:37 PM by unhappyuser |
|
AFAIK using blockparser you can make dump of all public address hashes. All what you need is a comment an unneeded parts of code and hold only output of hashes (you must edit output string a bit). Then you must remove all unique strings from your output. And at finish convert all hashes using right encoding. I do not know C/C++ too but I have done this at some time so I can say that it is not hard to do. I'm also must say that your database must be synchronized with "-txindex=1" parameter. My database is not up-to-date ATM so I can not explain that right now...
|
|
|
|
achow101
Staff
Legendary
Offline
Activity: 3444
Merit: 6737
Just writing some code
|
|
October 04, 2015, 03:52:32 PM |
|
How much is the bounty?
How much is the bounty and should we use your project ? because I don't know C & C++ honestly so not going be able to use it however I may use C# AND GIVE IT a shoot .
Bounty is 200$ , that is not my project but it is a very good code to hack. you can go ahead and try with C# . https://github.com/znort987/blockparser/blob/4920bba202c648e83abade4a756edab03526524e/util.cpp#L248// Output script commonly found in block reward TX, pays to explicit pubKey if( likely( 65==script[0] && // OP_PUSHDATA(65) 0xAC==script[scriptSize-1] && // OP_CHECKSIG 67==scriptSize ) ) I will try this using java and bitcoin core rpc if that is ok with you. Unfortunately I'm no good at c++ so I cant modify blockparser
|
|
|
|
FruitsBasket
Legendary
Offline
Activity: 1232
Merit: 1017
|
|
October 04, 2015, 03:57:07 PM |
|
hello xiazou, I don't know if u want a script but I know a website where u can find all private keys for free. The website is: http://buttcoins.com/. There are 3508851189009581679502151060869330540995077705426512254018338277015701863465 pages of keys, good luck!
|
fck@dt-alwayzz_newbz
|
|
|
XaiZou (OP)
Member
Offline
Activity: 80
Merit: 10
|
|
October 04, 2015, 04:12:36 PM |
|
AFAIK using blockparser you can make dump of all public address hashes. All what you need is a comment an unneeded parts of code and hold only output of hashes (you must edit output string a bit). Then you must remove all unique strings from your output. And at finish convert all hashes using right encoding. I do not know C/C++ too but I have done this at some time so I can say that it is not hard to do. I'm also must say that your database must be synchronized with "-txindex=1" parameter. My database is not up-to-date ATM so I can not explain that right now...
+1 , actually that's exactly what i want, but instead of cleaning up the code from unwanted code and functions. we can just make a new copy of a .cpp file for example dumpTX.cpp and modify it for our need ( dump only all the known public keys from the whole blockchain 'not hash160' ) OP_PUSHDATA(65, 0x0434417dd8d89deaf0f6481c2c160d6de0921624ef7b956f38eef9ed4a64e36877be84b77cdee 5a8d92b7d93694f89c3011bf1cbdf4fd7d8ca13b58a7bb4ab0804) P.S using blockparser doesn't need a fully synced blockchain.
|
|
|
|
XaiZou (OP)
Member
Offline
Activity: 80
Merit: 10
|
|
October 04, 2015, 04:18:05 PM |
|
How much is the bounty?
How much is the bounty and should we use your project ? because I don't know C & C++ honestly so not going be able to use it however I may use C# AND GIVE IT a shoot .
Bounty is 200$ , that is not my project but it is a very good code to hack. you can go ahead and try with C# . https://github.com/znort987/blockparser/blob/4920bba202c648e83abade4a756edab03526524e/util.cpp#L248// Output script commonly found in block reward TX, pays to explicit pubKey if( likely( 65==script[0] && // OP_PUSHDATA(65) 0xAC==script[scriptSize-1] && // OP_CHECKSIG 67==scriptSize ) ) I will try this using java and bitcoin core rpc if that is ok with you. Unfortunately I'm no good at c++ so I cant modify blockparser No problem, but i'm not sure how fast that will work using rpc.
|
|
|
|
unhappyuser
Newbie
Offline
Activity: 13
Merit: 0
|
|
October 04, 2015, 05:37:06 PM Last edit: October 04, 2015, 06:30:29 PM by unhappyuser |
|
OK, I have made a dirty callback for znort987's blockparser. As you said, it already works with part of blockchain. I have tested it on Ubuntu x86_64 with 3.13.0-65-generic kernel. You can get it here: https://mega.nz/#!ktxGjBYJ!Fm5RYsUZZ5PAa88Smb7R9ojG3MOx-yj450RUzF3sIy4 UPD.: tried this myself, seems good. In order to make blockparser, you must have following packages installed: build-essential libsparsehash-dev libssl-dev libboost-dev After compiling you can run this command: After this command finished you will see a text file named addresses.txt - this file will contain all outputs which blockchain contains. To remove all duplicates you can run this command: And that is all! P.S.: If it helped you then you can say me "Thank you" there: 15WkkJqxgQ2k8nXyhr3za9GYq2Jqpq9gyo ;)
|
|
|
|
amaclin
Legendary
Offline
Activity: 1260
Merit: 1019
|
|
October 04, 2015, 06:53:42 PM |
|
Do you need public keys which occur in scriptPubKey or is scriptSig (including p2sh inner scripts) also?
|
|
|
|
XaiZou (OP)
Member
Offline
Activity: 80
Merit: 10
|
|
October 04, 2015, 08:22:14 PM |
|
OK, I have made a dirty callback for znort987's blockparser. As you said, it already works with part of blockchain. I have tested it on Ubuntu x86_64 with 3.13.0-65-generic kernel. You can get it here: https://mega.nz/#!ktxGjBYJ!Fm5RYsUZZ5PAa88Smb7R9ojG3MOx-yj450RUzF3sIy4 UPD.: tried this myself, seems good. In order to make blockparser, you must have following packages installed: build-essential libsparsehash-dev libssl-dev libboost-dev After compiling you can run this command: After this command finished you will see a text file named addresses.txt - this file will contain all outputs which blockchain contains. To remove all duplicates you can run this command: And that is all! P.S.: If it helped you then you can say me "Thank you" there: 15WkkJqxgQ2k8nXyhr3za9GYq2Jqpq9gyo ;) That works, but the output is the base58check of the hash160, what i need is the raw pubkey not hash from the output/input script: 0434417dd8d89deaf0f6481c2c160d6de0921624ef7b956f38eef9ed4a64e36877be84b77cdee5a 8d92b7d93694f89c3011bf1cbdf4fd7d8ca13b58a7bb4ab0804
|
|
|
|
achow101
Staff
Legendary
Offline
Activity: 3444
Merit: 6737
Just writing some code
|
|
October 04, 2015, 08:45:39 PM |
|
What OS will you be running this on?
|
|
|
|
XaiZou (OP)
Member
Offline
Activity: 80
Merit: 10
|
|
October 04, 2015, 08:55:56 PM |
|
What OS will you be running this on?
Win and Linux.
|
|
|
|
achow101
Staff
Legendary
Offline
Activity: 3444
Merit: 6737
Just writing some code
|
|
October 05, 2015, 12:03:41 AM |
|
I wrote the tool using Java and Bitcoin core rpc. You can download it here: https://drive.google.com/file/d/0Bxw3ip9QfNOUWGZFWFN1alNjSHM/view?usp=sharingThere are 4 versions, linux 32 bit, linux 64 bit, windows 32 bit, and windows 64 bit. It also comes packaged with the proper jre for the program to run. To run the tool, you need to run Bitcoin core in server mode (with -server flag or have server=1 in bitcoin.conf and have an rpcuser and rpcpassword set in bitcoin.conf) as well as with txindex enabled (-txindex flag in command or have txindex=1 in bitcoin.conf). If you are running it from the command line, you need to have the -reindex flag as well for the first time because txindex requires that Bitcoin Core reindex its databases to include all of the transactions. If you run it with the GUI, there will be a dialog that prompts you. The reindex will take a long time. The program will work at any time during the reindex, but it will not be able to grab all of the data since the databases won't be up to date until it is done. The tool works a little slowly, so be patient. You will need to run it for several hours in order to complete. The usage: Tool which scrapes the entire blockchain for all of the pubkeys of all transactions Requires bitcoind (or Bitcoin Core with daemon enabled) and txindex=1 to be set in Bitcoin.conf Usage: pubkeyscraper <rpcuser> <rpcpassword> [rpcport] [rpcurl] <rpcuser> Required. User of the Bitcoin-RPC server set in bitcoin.conf <rpcpassword> Required. Password of the Bitcoin-RPC server set in bitcoin.conf [rpcport] Optional. Port of the Bitcoin-RPC server set in bitcoin.conf. Default is 8332 [rpcurl] Optional. URL or IP address of Bitcoin-RPC server. Default is 127.0.0.1 If this satisfies you, please send the bounty to the address in my profile.
|
|
|
|
XaiZou (OP)
Member
Offline
Activity: 80
Merit: 10
|
|
October 06, 2015, 03:21:00 PM |
|
I wrote the tool using Java and Bitcoin core rpc. You can download it here: https://drive.google.com/file/d/0Bxw3ip9QfNOUWGZFWFN1alNjSHM/view?usp=sharingThere are 4 versions, linux 32 bit, linux 64 bit, windows 32 bit, and windows 64 bit. It also comes packaged with the proper jre for the program to run. To run the tool, you need to run Bitcoin core in server mode (with -server flag or have server=1 in bitcoin.conf and have an rpcuser and rpcpassword set in bitcoin.conf) as well as with txindex enabled (-txindex flag in command or have txindex=1 in bitcoin.conf). If you are running it from the command line, you need to have the -reindex flag as well for the first time because txindex requires that Bitcoin Core reindex its databases to include all of the transactions. If you run it with the GUI, there will be a dialog that prompts you. The reindex will take a long time. The program will work at any time during the reindex, but it will not be able to grab all of the data since the databases won't be up to date until it is done. The tool works a little slowly, so be patient. You will need to run it for several hours in order to complete. The usage: Tool which scrapes the entire blockchain for all of the pubkeys of all transactions Requires bitcoind (or Bitcoin Core with daemon enabled) and txindex=1 to be set in Bitcoin.conf Usage: pubkeyscraper <rpcuser> <rpcpassword> [rpcport] [rpcurl] <rpcuser> Required. User of the Bitcoin-RPC server set in bitcoin.conf <rpcpassword> Required. Password of the Bitcoin-RPC server set in bitcoin.conf [rpcport] Optional. Port of the Bitcoin-RPC server set in bitcoin.conf. Default is 8332 [rpcurl] Optional. URL or IP address of Bitcoin-RPC server. Default is 127.0.0.1 If this satisfies you, please send the bounty to the address in my profile. Thanks for the effort, but this is very slow, i'm running it since yesterday and its still on blocks from year 2012.
|
|
|
|
amaclin
Legendary
Offline
Activity: 1260
Merit: 1019
|
|
October 06, 2015, 03:24:30 PM |
|
Thanks for the effort, but this is very slow, i'm running it since yesterday and its still on blocks from year 2012.
Do you still need it? I have to ask my question one more time: Do you want the public keys which occur in outputs? Or may be you want also pubkeys from the transactions inputs? (pubkeys are also occur there) (Parsing the whole blockchain will be no more than 1 hour)
|
|
|
|
XaiZou (OP)
Member
Offline
Activity: 80
Merit: 10
|
|
October 06, 2015, 03:44:06 PM |
|
Thanks for the effort, but this is very slow, i'm running it since yesterday and its still on blocks from year 2012.
Do you still need it? I have to ask my question one more time: Do you want the public keys which occur in outputs? Or may be you want also pubkeys from the transactions inputs? (pubkeys are also occur there) (Parsing the whole blockchain will be no more than 1 hour) Yes, i need those pubkeys from outputs & inputs, only uncompressed , no pay to hash160 or multisig , only the available known pubkeys, for example : 04cc8d85f5e7933cb18f13b97d165e1189c1fb3e9c98b0dd5446b2a1989883ff9e740a8a75da99cc59a21016caf7a7afd3e4e9e7952983e18d1ff70529d62e0ba1 0411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3 04fcc2888ca91cf0103d8c5797c256bf976e81f280205d002d85b9b622ed1a6f820866c7b5fe12285cfa78c035355d752fc94a398b67597dc4fbb5b386816425dd 046cc86ddcd0860b7cef16cbaad7fe31fda1bf073c25cb833fa9e409e7f51e296f39b653a9c8040a2f967319ff37cf14b0991b86173462a2d5907cb6c5648b5b76 0478ebe2c28660cd2fa1ba17cc04e58d6312679005a7cad1fd56a7b7f4630bd700bcdb84a888a43fe1a2738ea1f3d2301d02faef357e8a5c35a706e4ae0352a6ad
|
|
|
|
amaclin
Legendary
Offline
Activity: 1260
Merit: 1019
|
|
October 06, 2015, 03:56:29 PM |
|
Yes, i need those pubkeys from outputs & inputs, only uncompressed , no pay to hash160 or multisig , only the available known pubkeys, for example :
OK, I'll try to do it today. But why do you need only uncompressed? There are more compressed pubkeys 02xxxxx and 03xxxxx in blockchain
|
|
|
|
XaiZou (OP)
Member
Offline
Activity: 80
Merit: 10
|
|
October 06, 2015, 04:06:25 PM |
|
Yes, i need those pubkeys from outputs & inputs, only uncompressed , no pay to hash160 or multisig , only the available known pubkeys, for example :
OK, I'll try to do it today. But why do you need only uncompressed? There are more compressed pubkeys 02xxxxx and 03xxxxx in blockchain If you can ( if its possible ) uncompress them it would be great!
|
|
|
|
|