Bitcoin Forum
May 14, 2024, 04:58:05 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Patch needed ASAP: 100BTC + 50% for completion in < 24 hrs  (Read 1545 times)
chaord (OP)
Full Member
***
Offline Offline

Activity: 218
Merit: 101


View Profile
February 20, 2011, 08:09:21 PM
Last edit: February 20, 2011, 08:39:06 PM by chaord
 #1

Hi guys -

I hope someone is in the mood to make a quick buck today.  I need a relatively straight forward patch for the bitcoin client.  Here are the requirements:

  • Add new json-rpc command "broadcastTransactions"
  • Parameters: list of transactions in the same format as a serialized CTransaction.  Note, these transactions are likely NOT belonging to the client's bitcoind wallet.  They were created and serialized by an external wallet.
  • Procedure:  broadcast the new transactions to peers so that it will ultimately be accepted into a block.  i *think* it just needs to get added to the memory pool and then bitcoin will take care of advertising it to other nodes, send it etc.
  • No GUI necessary.  This is purely a headless patch.
If this is something you are capable of doing, I'd really appreciate it.  I'm willing to pay 100BTC for a working patch in 48 hours (50% bonus for < 24 hours).

As always, if you have questions (or if I didn't explain something correctly).  Please ask.  You can reply here, or contact me privately at chaord.btc@gmail.com.

Thanks.

P.S.  I will pay an additional 50% bonus if you can make sure the transactions are not lost in a blockchain re-org.
1715662685
Hero Member
*
Offline Offline

Posts: 1715662685

View Profile Personal Message (Offline)

Ignore
1715662685
Reply with quote  #2

1715662685
Report to moderator
Transactions must be included in a block to be properly completed. When you send a transaction, it is broadcast to miners. Miners can then optionally include it in their next blocks. Miners will be more inclined to include your transaction if it has a higher transaction fee.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715662685
Hero Member
*
Offline Offline

Posts: 1715662685

View Profile Personal Message (Offline)

Ignore
1715662685
Reply with quote  #2

1715662685
Report to moderator
1715662685
Hero Member
*
Offline Offline

Posts: 1715662685

View Profile Personal Message (Offline)

Ignore
1715662685
Reply with quote  #2

1715662685
Report to moderator
chaord (OP)
Full Member
***
Offline Offline

Activity: 218
Merit: 101


View Profile
February 21, 2011, 12:14:02 AM
 #2

Alternatively, I would also accept a server-side program (any language) that accomplishes the same thing and simply opens a connection with bitcoind, does the handshake, and sends the transaction.

Any takers?
ShadowOfHarbringer
Legendary
*
Offline Offline

Activity: 1470
Merit: 1005


Bringing Legendary Har® to you since 1952


View Profile
February 21, 2011, 12:22:32 AM
 #3

Will this patch be added to the publicly avaiable source, or will it be a secret/closed source ?

chaord (OP)
Full Member
***
Offline Offline

Activity: 218
Merit: 101


View Profile
February 21, 2011, 12:36:23 AM
 #4

Will this patch be added to the publicly avaiable source, or will it be a secret/closed source ?

I'd be happy to opensource this patch.  I eventually plan to open-source everything I'm working on.

I can't speak for the official source-code though.  I suppose if there is enough demand, they'd likely include it or something similar.
Hal
VIP
Sr. Member
*
expert
Offline Offline

Activity: 314
Merit: 3853



View Profile
February 21, 2011, 10:21:23 PM
 #5

Did you ever get this? Here's some minimal code that might work. Add to rpc.cpp after getwork:
Code:
Value broadcasttransactions(const Array& params, bool fHelp)
{
    if (fHelp || params.size() < 1)
        throw runtime_error(
            "broadcasttransactions <hexencodedtransaction> ...\n"
            "Broadcasts specified transaction(s) out onto the network.");

    for(int param=0; param<params.size(); param++)
    {
        string strTx = params[param].get_str();
        CDataStream vMsg(ParseHex(strTx));
        CTransaction tx;
        vMsg >> tx;
        CInv inv(MSG_TX, tx.GetHash());
        RelayMessage(inv, tx);
    }
    return Value::null;
}

Then add at the end of pCallTable (the next code block):
Code:
    make_pair("broadcasttransactions", &broadcasttransactions),

Maybe add "broadcasttransactions" to that next table, pAllowInSafeMode, otherwise I guess you have to start the server with -disablesafemode.

This is untested, I only spent about half an hour on it, so you don't have to pay if you use it.

Hal Finney
chaord (OP)
Full Member
***
Offline Offline

Activity: 218
Merit: 101


View Profile
February 21, 2011, 11:57:59 PM
 #6

Hal -
Thanks so much for contributing this.  I'll see if I can get it implemented an tested somehow (I'm not much of a C++ guy, so it'll be interesting).  If it works out, I'll flick you a couple bitcoins for your efforts!  Cheers.
--chaord
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!