6

In the example RPC results, it will show whether the result is a JSON array by including brackets [] or it will show if it is a JSON object (associative array) by using curly brackets {}. If the result does not come with any JSON encoding and is a single string or other data type, then you will not see that in the example. You can see an example of a result ...


4

esplora is just the web ui frontend, you also need to setup the (forked) electrs backend for indexing and for providing the HTTP API that esplora queries. electrs can index the bitcoin block chain using two methods: by reading the blk files directly out of disk, or by querying for blocks using the bitcoind rpc. The first method is significantly faster, but ...


3

No, you cannot use that value for that purpose. Bitcoin Core does not support publicly derivable addresses at all (at this point).


3

You actually did get the same hash. It's just that every Bitcoin software displays hashes byte swapped. If you look closely, you'll see that the first byte of your result (66) matches the last byte of the displayed merkleroot. The second byte matches the second to last byte, and so on. Internally, the merkleroot (and other hashes) are in the same order as ...


2

No, there is no support for this. It is not an interface which uses the RPC interface, it has much deeper access within the wallet than RPC provides.


2

To spend some BTC, the network’s nodes will require a valid cryptographic signature on the transaction that consumes the UTXO in question. Each UTXO is locked to some bitcoin address, and to create a signature that is valid for that address you’ll need knowledge of the private key used to derive/create that address. So a miner is not in any sort of ...


2

You can do sudo apt-get install -y software-properties-common sudo add-apt-repository -u ppa:bitcoin/bitcoin sudo add-apt-repository -u ppa:lightningnetwork/ppa sudo apt-get install bitcoind lightningd If you don't want to add external repositories you can flollow the clightning docs from https://github.com/ElementsProject/lightning/blob/master/doc/INSTALL....


2

You could check https://github.com/Blockstream/esplora I think it ticks all of the boxes, I am not sure about the NBitcoin though.


2

How can [Bitcoin] ...achieve mass usage status as payment method? I suspect much research has been done in this area. Privacy is an important obstacle but not the only one. Motivations and Barriers for End-User Adoption of Bitcoin as Digital Currency. Presthus and O'Malley, 2017 The largest group, the non-users, state that they are awaiting for others ...


2

Bitcoins themselves are fungible, and addresses are designed to be for one-time-use only. It really comes down to how you use it, and it is entirely possible to transact using Bitcoin in a private manner. If the user is naive and has poor practices, then it is possible to track their financial history. But if the user is smart and uses best practices (no ...


2

Community, what is the current state of privacy related BIPs? CoinJoin related ones: Adam Gibson's SNICKER draft, which permits a simple unidirectional CoinJoin construction. BIP 79, Bustapay, a standard for CoinJoined payments. P2P improvements: BIP 156, Dandelion: routing newly broadcast transactions a few hops before broadcasting. Draft for BIP 324: ...


2

Trying to enumerate all private keys using Bitcoin Core's wallet is extremely inefficient. Furthermore, any address that you generate in Bitcoin Core will inherently come from a HD seed because Bitcoin Core is a HD wallet and uses a HD seed. You also aren't going to get any information for a HD address that is not part of your wallet. However, I am not ...


2

The question at this step is: does the wallet app perform any kind of transaction validation that requires to check the whole history of the blockchain at this level ? It depends on the wallet. In general, a wallet will likely do some validation as a sanity check to ensure that the transaction they create is valid and will be accepted by nodes on the ...


2

The listunspent RPC command will provide a list of all unspent outputs in your wallet, along with the addresses.


1

With the .asc file, you can do gpg --import <asc filename>


1

The convention is to have the outputs in random order. This is specifically done in an effort to conceal which output is the change output. The change is by default sent to a new address that is owned by the sender, and as such has no history associated with it. The majority of bitcoin's code is actually c++. Here is a link to the relevant transaction ...


1

There are multiple ways in which you can update Bitcoin Core to the latest version. Each one has its own advantages and disadvantages: Build from source code: You can always update your software by cloning the git repository. This way you can verify the code and build the binary yourself. However, it is a resource intensive task and you will need to ...


1

@PieterWuille is right, it is really not related to bitcoin but to ZeroMQ and docker. I look into the source code and bitcoin core uses zmq_bind( socket, bindingAddress ). For BindingAddress, I can change it to tcp://*:28332 because callers from another containers or from host would have different IPs, so the most convenient way is to set it to a range of ...


1

getbalance returns the balance that your node currently considers spendable. According to your console output, the transaction that sent you the output was flagged as "bip125-replaceable"=>"yes". Since a transaction flagged as replaceable can be amended or retracted by the sender until it gets confirmed, an output from such a transaction will not be ...


1

I think this is a fair summary. I would hesitate to phase out unit tests, rather supplement them with property based tests. In a library I maintain called bitcoin-s we use them in tandem. Concepts There are two primary concepts in property based testing systems. The first one is a Generator. The point of a generator is to generate values you want to run ...


1

What is this "time lag" ? When a miner finds a block, they will broadcast it to the network. As with all real-world networks, there is a latency (“lag time”) for this information to be received by the other nodes in the network. Specifically, there will be some amount of latency between the miner that found the block, and other miners on the network. Even ...


1

getinfo has been deprecated as an RPC command, and the hyphenated version is provided as a bridge for legacy applications that have not yet moved to getblockchaininfo and getnetworkinfo. For regular RPC commands, you do not need the hyphen, and can simply run them as bitcoin-cli getblockchaininfo. The hyphenated parameters control the behaviour of bitcoin-...


1

No, Bitcoin Core uses the BIP32 derivation path m/0'/0', and you are unable to change the derivation path of the wallet in Bitcoin Core. There is however the Hardware Wallet Interface (HWI) that might be what you are looking for. https://github.com/bitcoin-core/HWI https://github.com/bitcoin-core/HWI/blob/master/docs/bitcoin-core-usage.md


1

When your client start the connection with another peer it is outbound, otherwise it is inbound. If you want to be sure that your tor node is properly setup and that other peer can connect to you, check: https://en.bitcoin.it/wiki/Setting_up_a_Tor_hidden_service


1

Raghav Sood: you are right: here the correct code: const addresses = bitcoinjs.address.fromOutputScript(outputScript, bitcoinjs.networks.testnet); Thanks :-)


1

The message potential stale tip detected, will retry extra outbound peers is associated with at least two situations: A firewall is blocking port 8333 and your node cannot communicate with peers. Problems with genesis block (delete blocks and chainstate directories and restart).


1

No, it is not possible to catch up via ZMQ itself. A sequence number is present with each notification so you can detect when you've missed notifications. In those cases, then you can fetch the missing blocks and transactions over the RPC interface.


1

Most services run their own services which track the UTXOs that they need. They use Bitcoin Core as an edge node which forwards all of the valid blocks and transactions to their internal software that adds them all to a database. This could be a software based on insight or Abe or something homegrown. In this way, they don't need to implement consensus and ...


1

Most services operating large scale wallets only use Bitcoin Core for networking information, and maintain a separate utxo set for wallet purposes. There are many existing options to build a full utxo set that can be queried for arbitrary addresses, such as the insight project. Moreover, recent versions of Bitcoin Core come with the scantxoutset RPC call, ...


1

The signature signs the spending transaction(*). Modifying it in any way will invalidate the signatures in it. (*) Not actually, as it's obviously impossible for the signature to sign itself. There are also means for a signature to indicate it explicitly does not sign certain parts of the transaction, permitting those to be modified after the fact.


Only top voted, non community-wiki answers of a minimum length are eligible