¿Qué herramienta/software puedo usar para transmitir una transacción sin procesar, que no rechazaría una transacción debido a un gasto no válido o doble?
Bitcoind con RPC tiene un paso de validación que rechaza cualquier transacción sin procesar en la que no se conocen las entradas, o si las entradas son de gasto doble.
Además, no quiero depender de un servicio de terceros como blockchain.info.
Resulta que hay muchas maneras de hacer esto:
No hay absolutamente ninguna razón para intentar transmitir una transacción no válida. Está perdiendo su tiempo y su tráfico. Su(s) compañero(s) lo revisarán y lo tirarán. No lo retransmitirán a la red. También pueden prohibir su dirección IP durante algún tiempo (¿1 día?)
¿Puede ser que desee enviar una transacción válida pero no estándar? ¿O tal vez desee tener una herramienta personalizada que envíe transacciones a una red?
// [...]
void NetSocket::pushTx ( const QByteArray& data )
{
const MyKey32 key ( data.constData ( ), data.size ( ) ); // calculate txid
outTx.insert ( key, data ); // store data
write ( "inv", invPacket ( MSG_TX, key ) ); // send inv packet
}
//--------------------------------------------------------------
void NetSocket::write ( const char* type, const QByteArray& data )
{
socket -> write ( packet ( type, data ) );
}
//--------------------------------------------------------------
void NetSocket::procGetdataPacket ( const QByteArray& data )
{
Stream d ( data ); d.skip24 ( ); // i do not check header now
const int count ( d.readVar ( ) );
xassert ( count == 1 );
const quint8* ss = d.readAdvance ( 36 );
const quint32 tag ( *(quint32*)ss );
const MyKey32 key ( ss + 4 );
xassert ( tag == MSG_TX );
xassert ( outTx.contains ( key ) );
write ( "tx", txPacket ( outTx.value ( key ) ) );
}
// [...]
Emre Kenci
Nate Eldredge
T9b
Flavio
Flavio