6

The "xpub" format was defined by BIP32. It's a standard that specifies how to derive public keys from master public keys and seeds. Parts of it are widely adopted, some parts aren't. However, it does not say anything about how the keys it generate should be turned into addresses, only the keys themselves. Now, at the time, there was only really one obvious ...


4

It is of course already using vbytes; anything else doesn't make sense. Almost everywhere Bitcoin Core reports transaction sizes, they're reported in vbytes (for non-segwit transactions, 1 vbyte = 1 byte, so it was a transparent and compatible update). However, the unit Bitcoin Core uses is "BTC per 1000 vbyte" rather than the currently more common "satoshi ...


4

ypub and zpub are not things that are specified in BIPs. They are things that people have decided to use and specify outside of the BIPs process. Furthermore, they are a layer violation. They specify what kind of addresses a public key should be used to create, but key generation and the address type to create from a key are entirely separate things that ...


4

Note that Bitcoin transactions don't actually contain the txid or hash within them. This is only part of the decoding output from Bitcoin Core. The hash is there because of segwit. Segwit specifies that witness data for a segwit input (i.e. signatures, scripts) are not part of the txid. Those are in a separate area in the transaction. You can see this ...


4

The keypool (currently) is not an address pool, it does not hold individual addresses, it holds keys. Those keys are then converted to addresses when you want them. Because of this, you cannot import P2SH or P2WSH addresses into the keypool as you are trying to do.


3

You can’t estimate a fee without a mempool, so blocksonly mode will cause this failure. Explicitly you don’t download transactions with this turned on.


3

Try using ZeroMQ to listen to transaction event. You can subscribe to hashtx or rawtx events. Here is a nodejs example taken from this great guide by GR0KCHAIN: https://bitcoindev.network/accessing-bitcoins-zeromq-interface/ var zmq = require('zmq') , sock = zmq.socket('sub') , RpcClient = require('bitcoind-rpc'); var config = { protocol: 'http', ...


3

The issue is that your hardened paths use the single quote notation which breaks the single quoting that surrounds the entire import command. You will need to escape those properly, and \' is not the way to do that. Instead, for every single quote within your import command, you need to do '"'"' - an explanation for why can be found here. Alternatively, you ...


3

How can they list the unspent transactions and the current amount of an address which "is not in their wallet"? Block explorer sites maintain a separate database of information which is built by continuously scanning the Bitcoin blockchain. If block explorer sites see a standard locking script in the outputs of the transactions, they scrape the addresses ...


3

No, the descriptors language currently doesn't support BIP67. It would be easy to add a multi_bip67 or so to the language if there is a need for it.


3

Use getblock with verbosity level 2. e.g. getblock 0000000000000000000cedb96c93635edfb2755a3357e7febe5929fb6db1658d 2 This will return the block with all of the transactions already decoded. Since you mentioned that you are doing getrawtransaction and then decoderawtransaction, getrawtransaction has another parameter to decode a transaction for you so you ...


3

There’s functionally no distinction between an output which doesn’t exist, and one which hasn’t existed from the perspective of validation. The node never needs to consider this so by default it stores no information about it.


2

You aren't doing anything wrong. This behavior is expected for Bitcoin Core 0.18. The Pull Request allowing private keys to be derived from descriptors and imported with importmulti was merged recently. This functionality will be included in Bitcoin Core 0.19.


2

Yes, you will want to create a new wallet and specify true for disable_private_keys. It is not necessary to specify blank as disable_private_keys will already ensure that no private keys will be generated or imported and as such, the newly created wallet will be blank anyways. You can then import xpubs, public keys, and addresses into Bitcoin Core using ...


2

1) "getmininginfo" gives the difficulty right now, and "getblocktemplate" gives the difficulty for the next block That is correct. getmininginfo gives the diffculty of the block at the current blockchain tip, and getblocktemplate gives the target for the block to be mined on top of the current tip, i.e. the next block. under the assumption that this ...


2

Bitcoin Core does not track each individual address, only the addresses associated with your wallet. There are other clients, such as bitcore-insight and btcd, which maintain a separate address index. Alternatively, you can implement an index yourself, or run an existing one such as ElectrumX.


2

Or is is possible to allocate multiple cores(not threads) to JSON rpc No. The problem is not to do with thread or core allocation. Rather Bitcoin Core makes use of locks to keep the chain state consistent when multiple threads may access it. In this case, you will need to access the chain state to get transactions so multiple getrawtransaction calls cannot ...


2

Bitcoin Core will never select unconfirmed incoming outputs. These are always considered to be untrusted and not safe for coin selection. This applies to any transactions that Bitcoin Core creates, including those created by using walletcreatefundedpsbt or fundrawtransaction. For a code reference, the AvailableCoins function is used to fetch and filter the ...


2

Currently the keypool is not an address pool. You cannot put addresses in the keypool. You need to be importing public keys in order for anything to be added to the keypool.


2

If you are using more than one wallet, the wallet is selected by sending the RPC requests to <host:port>/wallet/<wallet_name>.


2

Bitcoin does not actually use addresses internally. Addresses are just a way for us humans to specify what scriptPubKey we want the wallet software to create. When a transaction output is spent, the address is not included anywhere because it is not needed. Bitcoin Core's decoding RPCs will include more information than is actually present in the ...


2

Different networks are completely independent, and while it is technically possible to put together a single node software that is able to connect and process all of them, it makes little sense for someone to invest that amount of time and money in it when you can simply run each network independently (even on the same machine).


2

You can sign a message using the signmessage command. Note that this only works if you are using legacy addresses (Bitcoin Core currently defaults to p2sh-segwit addresses which cannot be used to sign a message). You an get a legacy address using: bitcoin-cli getnewaddres "" legacy If the wallet is locked, you won't be able to sign a message.


2

Coming from this question, is there any comprehensive collection of what errors can each RPC command return? For example. Let's say I want to run getbestblockhash or getblockcount. I'm unsure about what errors to expect. I don't think that such documentation exists. You would have to read the source code for a particular RPC. Additionally, since some ...


2

It is supported according to the LND installation guide NOTE: The auth parameters rpcuser and rpcpass parameters can typically be determined by lnd for a bitcoind instance running under the same user, including when using cookie auth. In this case, you can exclude them from the lnd options entirely.


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 getblockchaininfo RPC will tell you have many blocks and headers you have. When the number of headers is larger, you're still synchronizing.


2

The getrawmempool RPC command, in verbose mode, produces an output that contains all known mempool transactions for your nodes. This output contains a bip125-replaceable boolean field which you can use to determine if a tx is explicitly or implicitly replaceable by fee.


2

Based on Raghav Sood's answer, I found the more specific answer to the OP would be using getmempoolentry, in order to get an individual transaction info. Otherwise you'll be flooded with tons of transactions. Documented here You can also use gettransaction, it returns bip125-replaceable flag as well, however just for Bitcore prior to 0.10.0 according to ...


1

createmultisig is likely giving you the p2sh-segwit address, not the p2sh one. This means that the "redeemScript" you get from it is actually the witnessScript and the real redeemScript is the p2wsh script for your witnessScript. You can tell createmultisig to create just a p2sh address by setting the address type parameter to legacy. Alternatively, you can ...


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