What software are you using to decrypt the key?
|
|
|
1. Why is the salt not the same in the bitcoin source code as the python program below? 6ec1691c413b52bb vs 0x26cde4d5880(salt)
Because you are printing out the address of chSalt, not its contents. You are doing this everywhere that you have &. Why are you even putting & in front of things? Putting a & in front of a variable name gets a pointer to that variable, not any of its values. If you wanted to dereference a pointer to get the value it points to, you use *. But none of these are pointers, they are references which are treated exactly the same way as values. If you run it again, you will get different results because of different memory locations.
What are you trying to even accomplish?
|
|
|
When the software client loads the wallet, all variables (majority) contained in wallet.dat file load into program memory and are updated as required, is this a fair assumption?
Yes.
|
|
|
Within CMasterKey, vchCryptedKey is the encrypted master encryption key. This key is decrypted using a key derived from the user's passphrase (with key stretching parameters specified withing the CMasterKey. The decrypted encryption key is now a CKeyingMaterial and stored as vMasterKey in CWallet.
Encryption keys (along with some metadata) are stored in the wallet.dat file. They are encrypted by a key derived from the user's passphrase.
|
|
|
The log doesn't mention any more indexing than I expected - that is, apparently only from the first "new block" onwards. I've filtered the content for relevance.
Do you see any of the files that were replaced mentioned in the debug.log?
|
|
|
I think so, but I'm not sure. Any easy way to check after the fact?
You can check in the debug.log file. It'll say something about reindexing there. IIRC, reindexing can result in the block files having different modification times, even if they weren't actually modified.
|
|
|
Did you have to reindex after restoring the backup?
|
|
|
What is your question, and what does it have to do with Bitcoin? If this is just a general python question, try asking on https://stackoverflow.com/
|
|
|
Public key recovery is a function of ECDSA and is not restricted to any particular curves. It is a property of the signature algorithm (ECDSA), not of the curve. So yes, you can do public key recovery with any curve if they are using ECDSA. The Schnorr signature scheme that is described in the proposed Schnorr BIP doesn't allow for public key recovery even though it uses the same secp256k1 curve that is currently used by Bitcoin.
|
|
|
This will never happen. Any sort of telemetry will get shot down immediately and never be merged. Pretty much every contributor will Concept NACK it. Such a PR probably wouldn't even last an hour before it was closed.
Besides the fact that there are privacy concerns, there is also the issue of who is going to host the database that receives the data? What happens if that person stops working on Core (or dies)? How will those servers be paid for?
|
|
|
By the look of this, I guess it's going to be a hell of a lot of constantly checking what all those abbreviations mean when you are formulating a script. I understand the gain in terms of versatility and decrease of size, but for me Bitcoin Script is way easier to read and see what's going on. I guess I will need to put in effort and practice a lot and maybe it becomes second nature with Miniscript, but for complex stuff I can already tell I will struggle with it for a while, maybe that is how my brain works, I like to see every "extended" on display with no shortcuts.
For the most part, you won't be dealing with those abbreviations. The higher level policy language doesn't have those and the available policies actually have human readable names. Even so, the actual miniscript language itself is far more readable and understandable than Bitcoin script itself. When you have a complex script, it is going to be very hard to actually reason about what it does. The miniscript representation of it will be far easier to understand as you can actually part it into an AST and break it down into individual parts to read. And even then, those annotations aren't even necessary for understanding what the policy is, that's why there is a policy language that omits them. Also, there's like 5 or 6 abbreviations and you can quickly memorize them. It really isn't that complicated. If you think that Bitcoin script will be "way easier to read", I don't think you've even tried to use miniscript or have tried to make a complex script.
|
|
|
So I used createwallet and created a sender wallet and a receiver wallet to test with where I will mine to the sender wallet and try sending it to the receiver address. From here I'm not sure how to switch between wallets. I have 3 wallet.dat files now, two of which are in folders regtest/wallets/sender and regtest/wallets/receiver so I'm assuming bitcoind automatically grabs the wallet.dat in regtest/wallets/wallet.dat. How do I switch between receiver and senders wallet.dat's to test this? I tried looking at this link of outdaated calls to see if there is an RPC call for it, theres not in the outdated API: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_listThe link to the updated list does not list API calls. It has the header that says it but its blank then moves on to hash byte order: https://bitcoin.org/en/developer-reference#bitcoin-core-apisYou can get a list of available RPCs from Bitcoin Core directly using the help command, and the help documentation for each command using help <command> where <command> is the command you are interested in. In order to load a wallet, you use the loadwallet command. In order to send RPCs to that specific wallet, you use the -rpcwallet=<wallet name> option in bitcoin-cli where <wallet name> is the name of the wallet you want to access. To use the sender wallet, you would have -rpcwallet=sender, for the receiver, -rpcwallet=receiver. And for the default wallet (the one in regtest/wallets/wallet.dat), use -rpcwallet= as the default wallet has no name.
|
|
|
Using BITCOIND RPC require interacting with the Blockchain, and therefor downloading entire Blockchain is required before starting accepting Bitcoin Payments.
Or I am wrong ?
You are wrong and it is clear you didn't read the thread at all. OP can use bitcoin-cli to interact with blockchain.com's RPC interface which they made to be compatible with Bitcoin Core's. Installing bitcoind does not run bitcoind nor does it download the blockchain. He isn't using bitcoind at all. bitcoin-cli doesn't need access to the blockchain either, it's just a dumb client.
|
|
|
Humm, so bitcoin.conf is like one autoexec.bat, in this case i should install bitcoind and then i just need to use bitcoin-cli and thats all?
Yes.
|
|
|
In electrum you can send transactions to other addresses in your wallet and it transfers it all to the new address, how come its not doing this behavior in regtest CLI? The coins are not stored in that address, when I use generatetoaddress I use a different address than the one I'm sending it to.
They are all being sent to a new address. But that new address is part of your wallet. A wallet is a collection of multiple addresses and their scripts and keys. Bitcoin Core does not treat eat address separately, they are all bundled together as a single wallet. Since you are sending coins from one address in your wallet to another address, the net value going in and out (ignoring fees) does not change with that transaction, so it lists the amount of that transaction as 0.
|
|
|
You are sending money back to yourself, of course it's going to register as 0 amount.
Amount is calculated by: amount_in - amount_out - fees. amount_in is the total value of the outputs that belong to you. amount_out is the total value of the inputs that are yours. fees is the transaction fees paid. You have 2.4 + 47.59993360 = 49.99993360 in as that's the amount you are sending + the change output; no Bitcoin is going to anyone else. You have 50 out as that is the value of the input that is being spent.And -0.00006640 as the transaction fee itself. So the final amount is 49.99993360 - 50 - -0.00006640 = 0.
In order to get an amount that is not 0, you need to send Bitcoin to an address that is not part of that wallet. You can easily do this by creating another wallet using createwallet, getting an address from it, and sending coins there.
|
|
|
Ubuntu Server or Raspbian.
You can install the snap package or download the linux tarball and extract it. Either way, the blockchain won't be downloaded nor will Bitcoin Core automatically start after installing. I read that there is some bitcoin.conf file you know if i need special configuration in that file to just connect blockchain.com RPC?
The bitcoin.conf file is used to store command line arguments so you don't have to keep typing them. In order to use blockchain.com's RPC, you have to provide specific command line arguments. If you instead put them in a bitcoin.conf file that is in the default datadir location ( ~/.bitcoin), then using bitcoin-cli without command line options will use the options in the conf file. Otherwise there is no need for the bitcoin.conf file.
|
|
|
Id like to install it without GUI, its possible?
Yes. IIRC the only installer that has the option of starting after install is the Windows installer. Even if it does start after install, just watch ps (on linux) or whatever task/activity/process manager comes with your OS and check that neither bitcoind nor bitcoin-qt is running. If it is, you can kill it and just delete the datadir. It takes a while to download the blockchain, so if you kill it within a few minutes of starting, it won't have downloaded much. What OS are you trying to install on?
|
|
|
|