bitcoin core – Since which version the mining functionality removed from wallet?

As I’m starting to learn to create a new altcoin, I found there is a remarkable difference between old and new Bitcoin/Litecoin Core wallet is that old versions (0.6.9 of Litecoin) have mining functionality integrated in the wallet with a tab and a button for it while new versions (from 0.7.0.1 of Bitcoin) don’t.

So my question is from which version the mining functionality removed from wallet? Is there any change logs/release notes/statements that say about this change? And can someone tell me why we should separate it from the wallet?

I really want to see if I can re-integrate this functionality back to the wallet as most of my clients are low-tech and a button “Mining” will be definitely much visually easier then running bunch of lines of command in the terminal.

I guess some of you may then start to tell me to stop creating new altcoins but my clients really want to have a new bitcoin-like currency for their private business so I think you will unlikely to see it public elsewhere if you’re not part of the business so never mind. 🙂

Any reference links or articles or kinds of help will be highly appreciated. Thank you!

Hive Mac Wallet Migration – Bitcoin Stack Exchange

So I left Bitcoin for a while, and had transferred some of my bitcoin into a Hive-Mac wallet. Well I recently found out that Hive discontinued development and that the previous versions are no longer compatible with the newer versions of OSX.

I noticed that Hive-Mac used the bitcoinj library, and ostensibly this is the format that the wallet is in too.

Would I have any luck trying to recover the wallet into another application that runs on the bitcoinj library (and if so, any recommendations on which app), or do I need to try and run an older version of OSX so I can get the old version to build, then go from there?

wallet – Bitcoin Core internal Electrum Server

I think the preferred technique to use ‘bitcoin core as a wallet backend’ is through block filters, like the new compact block filters (an improvement over bloom filters). The protocol is known as Neutrino and lowers the CPU and storage requirements for your bitcoin core node (an electrumx database takes around 50 GB right now). To create these filters in bitcoin core, you need to launch add the bitcoind option blockfilterindex=1 or blockfilterindex=basic. With these filters, you can filter for blocks that affect the addresses (scriptPubKeys) that belong to your wallet. Several lightning wallets use this technique

This block filtering technique produces some false-positives, so you will fetch blocks that end up not affecting your addresses. Because you are requesting more than just the relevant transactions to your wallet, you end up consuming much more bandwidth than using an electrum server but it has the advantage of being more private.

Neutrino is used by several lightning network wallets:

When importing a wallet from private key or seed phrase, how do you guess the correct address format?

How do I determine the derivation path for the seed when importing it?

I don’t think you can determine the derivation path from the seed phrase, you have to ask the user to choose one from a list or input it if not listed. You can build in a list of derivation paths for popular wallets, the user then has to know the name, and maybe version number, of the wallet that produced the seed they are importing.

or do i just do a wallet address lookup based on the supported derivation paths and keep searching for about 20 address if it has any transactions on the blockchain ?

That would work in many cases. It assumes you have access to a full copy of the blockchain indexed by all addresses with non-zero balance. It needn’t be local but a non-local source might make your seed-importation take a long time.

bitcoin core – How can I use my pass phrase from 2009 to recover my wallet?

I believe the only possible answer for this time (assuming you mean 2009, no wallets existed before then with recovery mnemonics) is that the wallet was blockchain.info. Different to now, at the time it used a “recovery mnemonic”, which was an encoding of your password rather than the keys in your wallet. Unfortunately if this is the case you need to also know either the ‘wallet identifier’ (looks like fbb4b1dd-1b30-4cc2-b745-b586e4f3cb57), or the original wallet.json.aes file.

wallet recovery – Need help retrieving bitcoin from an old phone

A bitcoin app would not stop your phone from being formatted, so it must be something else.

That said, if you still have bitcoin in a wallet on your old phone, then you should definitely transfer it to a wallet on your new phone (or maybe just recreate your old wallet on your new phone). Just open up the bitcoin wallet, and transfer the funds / export the seed phrase.

Retrieving the bitcoin won’t fix your problem of being unable to format the phone, but you should definitely not sell your phone until you have done so!

wallet – How are the prefixes for EXT_PUBLIC_KEY and EXT_PRIVATE_KEY derived?

I want to know how the prefixes for EXT_PUBLIC_KEY and EXT_PRIVATE_KEY are derived. For example in bitcoin you have:

base58Prefixes(PUBKEY_ADDRESS) = std::vector<unsigned char>(1,0);
base58Prefixes(SCRIPT_ADDRESS) = std::vector<unsigned char>(1,5);
base58Prefixes(SECRET_KEY) =     std::vector<unsigned char>(1,128);
base58Prefixes(EXT_PUBLIC_KEY) = {0x04, 0x88, 0xB2, 0x1E};
base58Prefixes(EXT_SECRET_KEY) = {0x04, 0x88, 0xAD, 0xE4};

And I another cryptocurrency has:

base58Prefixes(PUBKEY_ADDRESS) = std::vector<unsigned char>(1,25); 
base58Prefixes(SCRIPT_ADDRESS) = std::vector<unsigned char>(1,5);
base58Prefixes(SECRET_KEY)     = std::vector<unsigned char>(1,153); // 25 + 128
base58Prefixes(SECRET_KEY_OLD) = std::vector<unsigned char>(1,151);
base58Prefixes(EXT_PUBLIC_KEY) = list_of(0x1E)(0x56)(0x2D)(0x9A).convert_to_container<std::vector<unsigned char> >();
base58Prefixes(EXT_SECRET_KEY) = list_of(0x1E)(0x56)(0x31)(0xBC).convert_to_container<std::vector<unsigned char> >();

Im trying to make a server that generates addresses from the Extended public key without exposing the private key on the latter cryptocurrency but I’ve been running into some problems. I want to understand how the EXT_PUBLIC_KEY is derived as for the development and how it is used to generate addresses. I’m trying to implement it into pywallet (https://github.com/ranaroussi/pywallet) but it seems to not support this kind of EXT_PUBLIC_KEY

security – Does mnemonic phrase contain everything in my wallet including future keys?

I am confused about something important …

Most wallets allow wallet recovery using “Mnemonic phrase”, but (in general) with this phrase, do I get access to all my data ? E.g future generated addresses that will hold my bitcoins ?

Another way to ask: is this the only thing I need to store or do I also need to export my actual wallet/keys when I generate a new address or receive new coins ?

I know each wallet works differently but I think this would be a general question.
If it matters, I noticed the Mnemonic feature on Electrum and Coinomi wallets.

Edit: how can Coinomi give me access to different coins using same mnemonic phrase ? Does this mean that it is more like a password to my data (data stored by them) and if their wallet service becomes unavailable I don’t really have access to any of my different coins ?