This article summarizes my first thoughts about the correct way a Bitcoin client should enable its bitcoin value history table to issue transactions. It is based on my reflexion as well as my experience in broadcasting dozens of hand-crafted transactions for which the bitcoin-core built-in wallet repeatedly demonstrated its ineptitude.
As it currently stands, the wallet is an embedded part of the reference implementation. The job of the node is to connect to others via the Internet, and to exchange information with them. The job of the wallet is to prevent others from connecting via the Internet, which makes the tension quite evident. The wallet, which uses the previous pieces to create transactions, sign and broadcast them. Query the UTXO for unspent outputs given a set of addresses. While the latter doesn’t present much implementation challenges, the former is a whole different story, depending on the particular way it is implemented.