Transactions – How are bitcoins programmatically sent without requiring a local copy of the blockchain?

I'm pretty new to Bitcoin development! I have seen the documentation above RPC Commands that are available if you have a local copy of the blockchain.

But I would like to know if it is possible to create and send send Transactions in the Bitcoin network without a local copy of the blockchain?

I use Java, but I try to avoid Bitcoinj. Currently I am trying to understand how everything works under the hood. I can add new addresses with the associated private keys (raw and WIFFormats). They work well!

With the API provided by, I can get information about these addresses and see if they have received any coins.

The only missing part for me is to find a way to be programmatic send Some coins from these addresses to other addresses, without a local copy of the blockchain (and with RPC calls on it).

Aha Also provides a wallet API. However, correct me if I'm wrong by using it she Control the private keys, right? I would prefer to send coins by creating and signing the transactions locally and then broadcast them yourself … without local blockchain.

Is it possible? What are the options?

Mine Pools – Do not miners control who is allowed to make transactions?

What you are describing is a Majority Assault where a miner owns more than 51% of the hashing power. It happened once in 2014, but the miner then decided to reduce his power so that the Bitcoin works as intended. You should also notice this. The possibilities of a miner possessing this power are limited. For more information, see the answer:

Now, if someone or a government attempts to make a 51% attack, even for a country like China, it costs a huge amount of resources to own more than 51% of the hashing power, and if they do, it will likely Do the network confidence and price, which makes the operation quite costly, almost without any benefit, while they could use that power to play and reward the game with the other.

Here is a better summary in the video:

and a more detailed answer:

unconfirmed transactions – Bitcoin qt 4.8.3

If, as in your case, you add a very small or no fee, you must apply for a special favor with a mining pool in order to receive your shipment.

In exceptional cases, a mining pool may require that your transaction be included in one of the less-utilized blocks.

They call this service "transaction accelerator".

For example, ViaBTC offers an accelerator.

If you search Google, you will find several similar services from other pools. Some of them get paid: they send someone a small reward and they put the TX in a mining pool queue for them.

This service has worked for me in the past, especially during the Mempool explosion in November 2017, when no low-fee transactions were performed.

Note, however, that this is a courtesy service and there are no guarantees. I remember you have to submit 2017 late at night or in less busy hours to be successful.

Transactions – clarification of UTXO costs

I would like to clarify my doubt about the UTXO issue, I have a transaction, an example of this and the use case for creating this transaction

bc1qz6qtgzkjnvzrf02tl8sczg7q8r0kkws0d5ly5s -> 0.00712451 BTC send to -> 33mMAc6nGyENdKMQTr5SrKoEkwNTeZQUx9

But the transaction contains UTXO, so

a UTXO for 33mMAc6nGyENdKMQTr5SrKoEkwNTeZQUx9 to 0.00700767 BTC
A UTXO for bc1qlctv5xhgw0yalp2vs47u342pegqm5r843c64dv to 0.00011212 BTC

Now I want to understand who is bc1qlctv5xhgw0yalp2vs47u342pegqm5r843c64dv?

  • Is the miner? So is it the fee?
  • Is the fork of the input transaction? For example, if I want to send 2 BTC from one of the 4BTC UTXOs, I need to create a new UTXO 2 output transaction to share the 4BTC UTXO.

Algorithms – investigation of n suspicious transactions


Some financial advisors currently advise a client who is investigating potential money laundering
to plan. The investigation has shown that there have been n suspicious transactions in the past few days, each of which has been transferred to a bank
Single account. Unfortunately, the patchy nature of the evidence is still today
means that they do not know the identity of the account and the amounts of
the transactions or the exact times when the transactions took place.
What they have is an approximate timestamp for each transaction; the
Evidence indicates that transaction i occurred at time tI ± eI, for some
"Error limit" eI, (In other words, it sometime found between tI – eI
and T.I + eI.) Note that different transactions may have different margins
the error.

Over the past few days, they have come across a bank account that we do not need for other reasons
You suspect you are the one involved in the crime. There are no new events related to the
Account that took place at times x1, X2, …, Xn, To see if it is plausible that this is really the account
They search and ask themselves if it is possible to link the n events of the account together
with a unique one of the n suspicious transactions in such a way that if the account event at the time xi
in connection with suspicious transactions that occurred at about time tj , then | t j – xI| $ ≤ $ ej , (In other
In other words, they want to know if the activity on the account matches suspicious transactions within the account
Margin of error; The trouble is that they do not know which account event to link to
suspicious transaction.)

Provide an efficient algorithm that takes the given data and decides if such an assignment exists. If
possible, you should make the maximum runtime $ O (n ^ 2) $,

testnet – Bitcoind on the test network does not show any transactions

Hello, I'm setting up the Bitcoin Core daemon. I use the version 160300 (but it is the same problem with a newer version).

I made the configuration like this:




then I run bitcoind:

bitcoind -daemon -conf="~/btc/testnet.conf"

Now I've gotten an address with:
bitcoin-cli --rpcuser="bob" --rpcpassword="12345" --rpcport=18332 getnewaddress "test_user"

Result is 2NF9YinW7mqpUGy1GySD2xEV11uVPbQggbb

Then I go to this page

I enter this address 2NF9YinW7mqpUGy1GySD2xEV11uVPbQggbb and press submit, it will return the transaction id, that's it here

But I'm doing now:

bitcoin-cli --rpcuser="bob" --rpcpassword="12345" --rpcport=18332 listtransactions  

and as a result you get:


No incoming transactions. getbalance returns 0

Can someone help me. What's up, do I have to mine blocks or something to get this transaction? Or should I wait more for Bitcoind to work?

Transactions – Duplicate issues on the first network submission

Bitcoin is a gossip network and passes transactions or blocks to the best of its knowledge. Therefore, you can not determine the probability that one transaction will be seen by the network compared to the other.

When mining transactions in a block, there are a few cases that need to be considered. Suppose we consider a mine node receiving T1 first and T2 after a few seconds.

  • standard case: Most miners still manage their mempool based on the first consideration. That is, if a miner sees T1 first, he may reject T2 even if the fees provided by T2 are higher than those of T1.
  • Replace by charge (RBF) will signal: If T1 had signaled an opt-in RBF (nSequence in any case, its input is less than 0xFFFFFFFE) than that of the miner can Replace T1 with T2 from its mempool.

Now the only remaining conflict may be that two blocks are mined simultaneously and at the same height, one containing T1 and the other T2. The chain version, in which the next block is dismantled, finally determines which transaction reaches the practical finality.

Transactions – Can we assume that addresses used in a single shipment come from the same wallet?

example transaction

Above is a sample transaction for Bitcoin.
Here are input addresses

3P2hJg8iRSBExAjd9yQGaazCLPFLeGB3hU (0.88970519 BTC - Output)
35jRUYxAwkqFhGyiGvS6Q4Aqxgcru7m9DM (0.43636859 BTC - Output)

My question is, since these two addresses are in a single shipment, can they be considered as coming from the same account (or wallet)?

The reason I'm asking is that I want to extract account-like information because Bitcoin World does not actually have an account concept.

Transactions – Bitcoin network resources required

As the level of difficulty automatically adjusts, it is indeed possible to operate a largely functional network with the minimum hardware required for storage and networking.

Of course, this network offers virtually no protection against 51% attacks, since anyone with a faster computer (or faster computers) will be able to keep their hardware to a minimum.

Running is as easy as setting up a new node with a miner and making sure that it is not connecting to the existing network. An easy way to do this is to create a new Genesis block. You can then mine mines in this network, and the difficulty level will adjust to give you a 10-minute blocking time.