2020 Bitcoin: Pass The Certified Bitcoin Professional Exam ...
BIP32, 39 and 44: differences between the most used seeds ...
BIP 0032 - Bitcoin Wiki
Bitcoin Core :: Bitcoin Core 0.13.0 Released!
Groestlcoin 6th Anniversary Release
Introduction
Dear Groestlers, it goes without saying that 2020 has been a difficult time for millions of people worldwide. The groestlcoin team would like to take this opportunity to wish everyone our best to everyone coping with the direct and indirect effects of COVID-19. Let it bring out the best in us all and show that collectively, we can conquer anything. The centralised banks and our national governments are facing unprecedented times with interest rates worldwide dropping to record lows in places. Rest assured that this can only strengthen the fundamentals of all decentralised cryptocurrencies and the vision that was seeded with Satoshi's Bitcoin whitepaper over 10 years ago. Despite everything that has been thrown at us this year, the show must go on and the team will still progress and advance to continue the momentum that we have developed over the past 6 years. In addition to this, we'd like to remind you all that this is Groestlcoin's 6th Birthday release! In terms of price there have been some crazy highs and lows over the years (with highs of around $2.60 and lows of $0.000077!), but in terms of value– Groestlcoin just keeps getting more valuable! In these uncertain times, one thing remains clear – Groestlcoin will keep going and keep innovating regardless. On with what has been worked on and completed over the past few months.
UPDATED - Groestlcoin Core 2.18.2
This is a major release of Groestlcoin Core with many protocol level improvements and code optimizations, featuring the technical equivalent of Bitcoin v0.18.2 but with Groestlcoin-specific patches. On a general level, most of what is new is a new 'Groestlcoin-wallet' tool which is now distributed alongside Groestlcoin Core's other executables. NOTE: The 'Account' API has been removed from this version which was typically used in some tip bots. Please ensure you check the release notes from 2.17.2 for details on replacing this functionality.
Builds are now done through Gitian
Calls to getblocktemplate will fail if the segwit rule is not specified. Calling getblocktemplate without segwit specified is almost certainly a misconfiguration since doing so results in lower rewards for the miner. Failed calls will produce an error message describing how to enable the segwit rule.
A warning is printed if an unrecognized section name is used in the configuration file. Recognized sections are [test], [main], and [regtest].
Four new options are available for configuring the maximum number of messages that ZMQ will queue in memory (the "high water mark") before dropping additional messages. The default value is 1,000, the same as was used for previous releases.
The rpcallowip option can no longer be used to automatically listen on all network interfaces. Instead, the rpcbind parameter must be used to specify the IP addresses to listen on. Listening for RPC commands over a public network connection is insecure and should be disabled, so a warning is now printed if a user selects such a configuration. If you need to expose RPC in order to use a tool like Docker, ensure you only bind RPC to your localhost, e.g. docker run [...] -p 127.0.0.1:1441:1441 (this is an extra :1441 over the normal Docker port specification).
The rpcpassword option now causes a startup error if the password set in the configuration file contains a hash character (#), as it's ambiguous whether the hash character is meant for the password or as a comment.
The whitelistforcerelay option is used to relay transactions from whitelisted peers even when not accepted to the mempool. This option now defaults to being off, so that changes in policy and disconnect/ban behavior will not cause a node that is whitelisting another to be dropped by peers.
A new short about the JSON-RPC interface describes cases where the results of anRPC might contain inconsistencies between data sourced from differentsubsystems, such as wallet state and mempool state.
A new document introduces Groestlcoin Core's BIP174 interface, which is used to allow multiple programs to collaboratively work to create, sign, and broadcast new transactions. This is useful for offline (cold storage) wallets, multisig wallets, coinjoin implementations, and many other cases where two or more programs need to interact to generate a complete transaction.
The output script descriptor (https://github.com/groestlcoin/groestlcoin/blob/mastedoc/descriptors.md) documentation has been updated with information about new features in this still-developing language for describing the output scripts that a wallet or other program wants to receive notifications for, such as which addresses it wants to know received payments. The language is currently used in multiple new and updated RPCs described in these release notes and is expected to be adapted to other RPCs and to the underlying wallet structure.
A new --disable-bip70 option may be passed to ./configure to prevent Groestlcoin-Qt from being built with support for the BIP70 payment protocol or from linking libssl. As the payment protocol has exposed Groestlcoin Core to libssl vulnerabilities in the past, builders who don't need BIP70 support are encouraged to use this option to reduce their exposure to future vulnerabilities.
The minimum required version of Qt (when building the GUI) has been increased from 5.2 to 5.5.1 (the depends system provides 5.9.7)
getnodeaddresses returns peer addresses known to this node. It may be used to find nodes to connect to without using a DNS seeder.
listwalletdir returns a list of wallets in the wallet directory (either the default wallet directory or the directory configured bythe -walletdir parameter).
getrpcinfo returns runtime details of the RPC server. Currently, it returns an array of the currently active commands and how long they've been running.
deriveaddresses returns one or more addresses corresponding to an output descriptor.
getdescriptorinfo accepts a descriptor and returns information aboutit, including its computed checksum.
joinpsbts merges multiple distinct PSBTs into a single PSBT. The multiple PSBTs must have different inputs. The resulting PSBT will contain every input and output from all the PSBTs. Any signatures provided in any of the PSBTs will be dropped.
analyzepsbt examines a PSBT and provides information about what the PSBT contains and the next steps that need to be taken in order to complete the transaction. For each input of a PSBT, analyze psbt provides information about what information is missing for that input, including whether a UTXO needs to be provided, what pubkeys still need to be provided, which scripts need to be provided, and what signatures are still needed. Every input will also list which role is needed to complete that input, and analyzepsbt will also list the next role in general needed to complete the PSBT. analyzepsbt will also provide the estimated fee rate and estimated virtual size of the completed transaction if it has enough information to do so.
utxoupdatepsbt searches the set of Unspent Transaction Outputs (UTXOs) to find the outputs being spent by the partial transaction. PSBTs need to have the UTXOs being spent to be provided because the signing algorithm requires information from the UTXO being spent. For segwit inputs, only the UTXO itself is necessary. For non-segwit outputs, the entire previous transaction is needed so that signers can be sure that they are signing the correct thing. Unfortunately, because the UTXO set only contains UTXOs and not full transactions, utxoupdatepsbt will only add the UTXO for segwit inputs.
getpeerinfo now returns an additional minfeefilter field set to the peer's BIP133 fee filter. You can use this to detect that you have peers that are willing to accept transactions below the default minimum relay fee.
The mempool RPCs, such as getrawmempool with verbose=true, now return an additional "bip125-replaceable" value indicating whether thetransaction (or its unconfirmed ancestors) opts-in to asking nodes and miners to replace it with a higher-feerate transaction spending any of the same inputs.
settxfee previously silently ignored attempts to set the fee below the allowed minimums. It now prints a warning. The special value of"0" may still be used to request the minimum value.
getaddressinfo now provides an ischange field indicating whether the wallet used the address in a change output.
importmulti has been updated to support P2WSH, P2WPKH, P2SH-P2WPKH, and P2SH-P2WSH. Requests for P2WSH and P2SH-P2WSH accept an additional witnessscript parameter.
importmulti now returns an additional warnings field for each request with an array of strings explaining when fields are being ignored or are inconsistent, if there are any.
getaddressinfo now returns an additional solvable Boolean field when Groestlcoin Core knows enough about the address's scriptPubKey, optional redeemScript, and optional witnessScript for the wallet to be able to generate an unsigned input spending funds sent to that address.
The getaddressinfo, listunspent, and scantxoutset RPCs now return an additional desc field that contains an output descriptor containing all key paths and signing information for the address (except for the private key). The desc field is only returned for getaddressinfo and listunspent when the address is solvable.
importprivkey will preserve previously-set labels for addresses or public keys corresponding to the private key being imported. For example, if you imported a watch-only address with the label "coldwallet" in earlier releases of Groestlcoin Core, subsequently importing the private key would default to resetting the address's label to the default empty-string label (""). In this release, the previous label of "cold wallet" will be retained. If you optionally specify any label besides the default when calling importprivkey, the new label will be applied to the address.
getmininginfo now omits currentblockweight and currentblocktx when a block was never assembled via RPC on this node.
The getrawtransaction RPC & REST endpoints no longer check the unspent UTXO set for a transaction. The remaining behaviors are as follows:
If a blockhash is provided, check the corresponding block.
If no blockhash is provided, check the mempool.
If no blockhash is provided but txindex is enabled, also check txindex.
unloadwallet is now synchronous, meaning it will not return until the wallet is fully unloaded.
importmulti now supports importing of addresses from descriptors. A desc parameter can be provided instead of the "scriptPubKey" in are quest, as well as an optional range for ranged descriptors to specify the start and end of the range to import. Descriptors with key origin information imported through importmulti will have their key origin information stored in the wallet for use with creating PSBTs.
listunspent has been modified so that it also returns witnessScript, the witness script in the case of a P2WSH orP2SH-P2WSH output.
createwallet now has an optional blank argument that can be used to create a blank wallet. Blank wallets do not have any keys or HDseed. They cannot be opened in software older than 2.18.2. Once a blank wallet has a HD seed set (by using sethdseed) or private keys, scripts, addresses, and other watch only things have been imported, the wallet is no longer blank and can be opened in 2.17.2. Encrypting a blank wallet will also set a HD seed for it.
signrawtransaction is removed after being deprecated and hidden behind a special configuration option in version 2.17.2.
The 'account' API is removed after being deprecated in v2.17.2 The 'label' API was introduced in v2.17.2 as a replacement for accounts. See the release notes from v2.17.2 for a full description of the changes from the 'account' API to the 'label' API.
addwitnessaddress is removed after being deprecated in version 2.16.0.
generate is deprecated and will be fully removed in a subsequent major version. This RPC is only used for testing, but its implementation reached across multiple subsystems (wallet and mining), so it is being deprecated to simplify the wallet-node interface. Projects that are using generate for testing purposes should transition to using the generatetoaddress RPC, which does not require or use the wallet component. Calling generatetoaddress with an address returned by the getnewaddress RPC gives the same functionality as the old generate RPC. To continue using generate in this version, restart groestlcoind with the -deprecatedrpc=generate configuration option.
Be reminded that parts of the validateaddress command have been deprecated and moved to getaddressinfo. The following deprecated fields have moved to getaddressinfo: ismine, iswatchonly,script, hex, pubkeys, sigsrequired, pubkey, embedded,iscompressed, label, timestamp, hdkeypath, hdmasterkeyid.
The addresses field has been removed from the validateaddressand getaddressinfo RPC methods. This field was confusing since it referred to public keys using their P2PKH address. Clients should use the embedded.address field for P2SH or P2WSH wrapped addresses, and pubkeys for inspecting multisig participants.
A new /rest/blockhashbyheight/ endpoint is added for fetching the hash of the block in the current best blockchain based on its height (how many blocks it is after the Genesis Block).
A new Window menu is added alongside the existing File, Settings, and Help menus. Several items from the other menus that opened new windows have been moved to this new Window menu.
In the Send tab, the checkbox for "pay only the required fee" has been removed. Instead, the user can simply decrease the value in the Custom Fee rate field all the way down to the node's configured minimumrelay fee.
In the Overview tab, the watch-only balance will be the only balance shown if the wallet was created using the createwallet RPC and thedisable_private_keys parameter was set to true.
The launch-on-startup option is no longer available on macOS if compiled with macosx min version greater than 10.11 (useCXXFLAGS="-mmacosx-version-min=10.11" CFLAGS="-mmacosx-version-min=10.11" for setting the deployment sdkversion)
A new groestlcoin-wallet tool is now distributed alongside Groestlcoin Core's other executables. Without needing to use any RPCs, this tool can currently create a new wallet file or display some basic information about an existing wallet, such as whether the wallet is encrypted, whether it uses an HD seed, how many transactions it contains, and how many address book entries it has.
Since version 2.16.0, Groestlcoin Core's built-in wallet has defaulted to generating P2SH-wrapped segwit addresses when users want to receive payments. These addresses are backwards compatible with all widely used software. Starting with Groestlcoin Core 2.20.1 (expected about a year after 2.18.2), Groestlcoin Core will default to native segwitaddresses (bech32) that provide additional fee savings and other benefits. Currently, many wallets and services already support sending to bech32 addresses, and if the Groestlcoin Core project sees enough additional adoption, it will instead default to bech32 receiving addresses in Groestlcoin Core 2.19.1. P2SH-wrapped segwit addresses will continue to be provided if the user requests them in the GUI or by RPC, and anyone who doesn't want the update will be able to configure their default address type. (Similarly, pioneering users who want to change their default now may set the addresstype=bech32 configuration option in any Groestlcoin Core release from 2.16.0 up.)
BIP 61 reject messages are now deprecated. Reject messages have no use case on the P2P network and are only logged for debugging by most network nodes. Furthermore, they increase bandwidth and can be harmful for privacy and security. It has been possible to disable BIP 61 messages since v2.17.2 with the -enablebip61=0 option. BIP 61 messages will be disabled by default in a future version, before being removed entirely.
The submitblock RPC previously returned the reason a rejected block was invalid the first time it processed that block but returned a generic "duplicate" rejection message on subsequent occasions it processed the same block. It now always returns the fundamental reason for rejecting an invalid block and only returns "duplicate" for valid blocks it has already accepted.
A new submitheader RPC allows submitting block headers independently from their block. This is likely only useful for testing.
The signrawtransactionwithkey and signrawtransactionwithwallet RPCs have been modified so that they also optionally accept a witnessScript, the witness script in the case of a P2WSH orP2SH-P2WSH output. This is compatible with the change to listunspent.
For the walletprocesspsbt and walletcreatefundedpsbt RPCs, if thebip32derivs parameter is set to true but the key metadata for a public key has not been updated yet, then that key will have a derivation path as if it were just an independent key (i.e. no derivation path and its master fingerprint is itself).
The -usehd configuration option was removed in version 2.16.0 From that version onwards, all new wallets created are hierarchical deterministic wallets. This release makes specifying -usehd an invalid configuration option.
This release allows peers that your node automatically disconnected for misbehaviour (e.g. sending invalid data) to reconnect to your node if you have unused incoming connection slots. If your slots fill up, a misbehaving node will be disconnected to make room for nodes without a history of problems (unless the misbehaving node helps your node in some other way, such as by connecting to a part of the Internet from which you don't have many other peers). Previously, Groestlcoin Core banned the IP addresses of misbehaving peers for a period (default of 1 day); this was easily circumvented by attackers with multiple IP addresses. If you manually ban a peer, such as by using the setban RPC, all connections from that peer will still be rejected.
The key metadata will need to be upgraded the first time that the HDseed is available. For unencrypted wallets this will occur on wallet loading. For encrypted wallets this will occur the first time the wallet is unlocked.
Newly encrypted wallets will no longer require restarting the software. Instead such wallets will be completely unloaded and reloaded to achieve the same effect.
A sub-project of Bitcoin Core now provides Hardware Wallet Interaction (HWI) scripts that allow command-line users to use several popular hardware key management devices with Groestlcoin Core. See their project page for details.
This release changes the Random Number Generator (RNG) used from OpenSSL to Groestlcoin Core's own implementation, although entropy gathered by Groestlcoin Core is fed out to OpenSSL and then read back in when the program needs strong randomness. This moves Groestlcoin Core a little closer to no longer needing to depend on OpenSSL, a dependency that has caused security issues in the past. The new implementation gathers entropy from multiple sources, including from hardware supporting the rdseed CPU instruction.
On macOS, Groestlcoin Core now opts out of application CPU throttling ("app nap") during initial blockchain download, when catching up from over 100 blocks behind the current chain tip, or when reindexing chain data. This helps prevent these operations from taking an excessively long time because the operating system is attempting to conserve power.
How to Upgrade?
Windows If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer. OSX If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), run the dmg and drag Groestlcoin Core to Applications. Ubuntu http://groestlcoin.org/forum/index.php?topic=441.0
ALL NEW - Groestlcoin Moonshine iOS/Android Wallet
Built with React Native, Moonshine utilizes Electrum-GRS's JSON-RPC methods to interact with the Groestlcoin network. GRS Moonshine's intended use is as a hot wallet. Meaning, your keys are only as safe as the device you install this wallet on. As with any hot wallet, please ensure that you keep only a small, responsible amount of Groestlcoin on it at any given time.
Features
Groestlcoin Mainnet & Testnet supported
Bech32 support
Multiple wallet support
Electrum - Support for both random and custom peers
Encrypted storage
Biometric + Pin authentication
Custom fee selection
Import mnemonic phrases via manual entry or scanning
RBF functionality
BIP39 Passphrase functionality
Support for Segwit-compatible & legacy addresses in settings
Support individual private key sweeping
UTXO blacklisting - Accessible via the Transaction Detail view, this allows users to blacklist any utxo that they do not wish to include in their list of available utxo's when sending transactions. Blacklisting a utxo excludes its amount from the wallet's total balance.
Ability to Sign & Verify Messages
Support BitID for password-free authentication
Coin Control - This can be accessed from the Send Transaction view and basically allows users to select from a list of available UTXO's to include in their transaction.
HODL GRS connects directly to the Groestlcoin network using SPV mode and doesn't rely on servers that can be hacked or disabled. HODL GRS utilizes AES hardware encryption, app sandboxing, and the latest security features to protect users from malware, browser security holes, and even physical theft. Private keys are stored only in the secure enclave of the user's phone, inaccessible to anyone other than the user. Simplicity and ease-of-use is the core design principle of HODL GRS. A simple recovery phrase (which we call a Backup Recovery Key) is all that is needed to restore the user's wallet if they ever lose or replace their device. HODL GRS is deterministic, which means the user's balance and transaction history can be recovered just from the backup recovery key.
Features
Simplified payment verification for fast mobile performance
Groestlcoin Seed Savior is a tool for recovering BIP39 seed phrases. This tool is meant to help users with recovering a slightly incorrect Groestlcoin mnemonic phrase (AKA backup or seed). You can enter an existing BIP39 mnemonic and get derived addresses in various formats. To find out if one of the suggested addresses is the right one, you can click on the suggested address to check the address' transaction history on a block explorer.
Features
If a word is wrong, the tool will try to suggest the closest option.
If a word is missing or unknown, please type "?" instead and the tool will find all relevant options.
NOTE: NVidia GPU or any CPU only. AMD graphics cards will not work with this address generator. VanitySearch is a command-line Segwit-capable vanity Groestlcoin address generator. Add unique flair when you tell people to send Groestlcoin. Alternatively, VanitySearch can be used to generate random addresses offline. If you're tired of the random, cryptic addresses generated by regular groestlcoin clients, then VanitySearch is the right choice for you to create a more personalized address. VanitySearch is a groestlcoin address prefix finder. If you want to generate safe private keys, use the -s option to enter your passphrase which will be used for generating a base key as for BIP38 standard (VanitySearch.exe -s "My PassPhrase" FXPref). You can also use VanitySearch.exe -ps "My PassPhrase" which will add a crypto secure seed to your passphrase. VanitySearch may not compute a good grid size for your GPU, so try different values using -g option in order to get the best performances. If you want to use GPUs and CPUs together, you may have best performances by keeping one CPU core for handling GPU(s)/CPU exchanges (use -t option to set the number of CPU threads).
Features
Fixed size arithmetic
Fast Modular Inversion (Delayed Right Shift 62 bits)
SecpK1 Fast modular multiplication (2 steps folding 512bits to 256bits using 64 bits digits)
Use some properties of elliptic curve to generate more keys
SSE Secure Hash Algorithm SHA256 and RIPEMD160 (CPU)
Groestlcoin EasyVanity 2020 is a windows app built from the ground-up and makes it easier than ever before to create your very own bespoke bech32 address(es) when whilst not connected to the internet. If you're tired of the random, cryptic bech32 addresses generated by regular Groestlcoin clients, then Groestlcoin EasyVanity2020 is the right choice for you to create a more personalised bech32 address. This 2020 version uses the new VanitySearch to generate not only legacy addresses (F prefix) but also Bech32 addresses (grs1 prefix).
Features
Ability to continue finding keys after first one is found
Includes warning on start-up if connected to the internet
Ability to output keys to a text file (And shows button to open that directory)
Show and hide the private key with a simple toggle switch
Show full output of commands
Ability to choose between Processor (CPU) and Graphics Card (GPU) ( NVidia ONLY! )
Features both a Light and Dark Material Design-Style Themes
Free software - MIT. Anyone can audit the code.
Written in C# - The code is short, and easy to review.
Groestlcoin WPF is an alternative full node client with optional lightweight 'thin-client' mode based on WPF. Windows Presentation Foundation (WPF) is one of Microsoft's latest approaches to a GUI framework, used with the .NET framework. Its main advantages over the original Groestlcoin client include support for exporting blockchain.dat and including a lite wallet mode. This wallet was previously deprecated but has been brought back to life with modern standards.
Features
Works via TOR or SOCKS5 proxy
Can use bootstrap.dat format as blockchain database
Import/Export blockchain to/from bootstrap.dat
Import wallet.dat from Groestlcoin-qt wallet
Export wallet to wallet.dat
Use both groestlcoin-wpf and groestlcoin-qt with the same addresses in parallel. When you send money from one program, the transaction will automatically be visible on the other wallet.
Rescan blockchain with a simple mouse click
Works as a full node and listens to port 1331 (listening port can be changed)
Fast Block verifying, parallel processing on multi-core CPUs
Mine Groestlcoins with your CPU by a simple mouse click
All private keys are kept encrypted on your local machine (or on a USB stick)
Lite - Has a lightweight "thin client" mode which does not require a new user to download the entire Groestlcoin chain and store it
Free and decentralised - Open Source under GNU license
Remastered Improvements
Bech32 support
P2sh support
Fixed Import/Export to wallet.dat
Testnet Support
Rescan wallet option
Change wallet password option
Address type and Change type options through *.conf file
Import from bootstrap.dat - It is a flat, binary file containing Groestlcoin blockchain data, from the genesis block through a recent height. All versions automatically validate and import the file "grs.bootstrap.dat" in the GRS directory. Grs.bootstrap.dat is compatible with Qt wallet. GroestlCoin-Qt can load from it.
In Full mode file %APPDATA%\Groestlcoin-WPF\GRS\GRS.bootstrap.dat is full blockchain in standard bootstrap.dat format and can be used with other clients.
Groestlcoin BIP39 Key Tool is a GUI interface for generating Groestlcoin public and private keys. It is a standalone tool which can be used offline.
Features
Selection options for 3-24 words (simply putting the space separated words in the first word box will also work) along with a bip39 passphrase
User input for total number of addresses desired
Creation of P2PKH, P2SH, P2WPKH and P2WSH addresses along with xpriv and xpub as per BIP32 spec, using a word list as the starting point following the BIP39 standard.
Pre-sets for BIP44, BIP49, BIP84 and BIP141 standards, along with custom user input for derivation path
Option for Hardened or non-hardened addresses
Option for Testnet private and public keys
Output containing derivation path, private key in WIF, integer and hex format, public key address, public point on curve and scriptpubkey
Results are output in a file titled 'wallet.txt' with the time addresses were generated, along with all information presented onscreen
Groestlcoin Electrum Personal Server aims to make using Electrum Groestlcoin wallet more secure and more private. It makes it easy to connect your Electrum-GRS wallet to your own full node. It is an implementation of the Electrum-grs server protocol which fulfils the specific need of using the Electrum-grs wallet backed by a full node, but without the heavyweight server backend, for a single user. It allows the user to benefit from all Groestlcoin Core's resource-saving features like pruning, blocks only and disabled txindex. All Electrum-GRS's feature-richness like hardware wallet integration, multi-signature wallets, offline signing, seed recovery phrases, coin control and so on can still be used, but connected only to the user's own full node. Full node wallets are important in Groestlcoin because they are a big part of what makes the system be trust-less. No longer do people have to trust a financial institution like a bank or PayPal, they can run software on their own computers. If Groestlcoin is digital gold, then a full node wallet is your own personal goldsmith who checks for you that received payments are genuine. Full node wallets are also important for privacy. Using Electrum-GRS under default configuration requires it to send (hashes of) all your Groestlcoin addresses to some server. That server can then easily spy on your transactions. Full node wallets like Groestlcoin Electrum Personal Server would download the entire blockchain and scan it for the user's own addresses, and therefore don't reveal to anyone else which Groestlcoin addresses they are interested in. Groestlcoin Electrum Personal Server can also broadcast transactions through Tor which improves privacy by resisting traffic analysis for broadcasted transactions which can link the IP address of the user to the transaction. If enabled this would happen transparently whenever the user simply clicks "Send" on a transaction in Electrum-grs wallet. Note: Currently Groestlcoin Electrum Personal Server can only accept one connection at a time.
Features
Use your own node
Tor support
Uses less CPU and RAM than ElectrumX
Used intermittently rather than needing to be always-on
Doesn't require an index of every Groestlcoin address ever used like on ElectrumX
UPDATED – Android Wallet 7.38.1 - Main Net + Test Net
The app allows you to send and receive Groestlcoin on your device using QR codes and URI links. When using this app, please back up your wallet and email them to yourself! This will save your wallet in a password protected file. Then your coins can be retrieved even if you lose your phone.
Changes
Add confidence messages, helping users to understand the confidence state of their payments.
Handle edge case when restoring via an external app.
Count devices with a memory class of 128 MB as low ram.
Introduce dark mode on Android 10 devices.
Reduce memory usage of PIN-protected wallets.
Tapping on the app's version will reveal a checksum of the APK that was installed.
Fix issue with confirmation of transactions that empty your wallet.
Groestlcoin Sentinel is a great solution for anyone who wants the convenience and utility of a hot wallet for receiving payments directly into their cold storage (or hardware wallets). Sentinel accepts XPUB's, YPUB'S, ZPUB's and individual Groestlcoin address. Once added you will be able to view balances, view transactions, and (in the case of XPUB's, YPUB's and ZPUB's) deterministically generate addresses for that wallet. Groestlcoin Sentinel is a fork of Groestlcoin Samourai Wallet with all spending and transaction building code removed.
Transcript of Open Developer Meeting In Discord - 5/10/2019
[Dev-Happy] Blondfrogs05/10/2019 Channel should be open now Chill05/10/2019 you all rock! just getting that out of the way :wink: Tron05/10/2019 Cheers everyone. theking05/10/2019 Hi fabulous dev team! Hans_Schmidt05/10/2019 Howdy! Tron05/10/2019 No specific agenda today. Questions? Has everyone seen Zelcore wallet, and Spend app? theDopeMedic05/10/2019 Any major development status updates that haven't been listed in #news? Synicide05/10/2019 How was the meetup yesterday? I heard it would be recorded, it is uploaded anywhere yet? Tron05/10/2019 And Trezor support on Mango Farm assets? @Synicide Yes it was recorded. The Bitcoin meetup organizer has the video. I talked about Ravencoin, but mostly about the stuff that was being built on/with/for Ravencoin. There was about 70% overlap with folks who were at the Ravencoin meetup in March. Synicide05/10/2019 awesome, looking forward to watching it when it's available Tron05/10/2019 I'll hit up James and see if he's posting the video. S1LVA | GetRavencoin.org05/10/2019 @theDopeMedic I'd follow github if youre interested in development status Synicide05/10/2019 zelcore looks super slick. Been meaning to research its security more with the username/pw being stored on device Chill05/10/2019 How is the progress on the restricted assets and testnet coming along? A secondary question would be about the approximate fork timeframe. S1LVA | GetRavencoin.org05/10/2019 Has anyone heard from the community dev (BW) working on Dividends? Rikki RATTOE Sr. SEC Impresantor05/10/2019 Any word on BW and his progress w dividends? @S1LVA | GetRavencoin.org LOL Tron05/10/2019 @S1LVA | GetRavencoin.org Great question. I haven't heard. Synicide05/10/2019 last meeting BlondFrogs said he would try to connect with BW as he was sick with the flu at the time. Maybe he has an update S1LVA | GetRavencoin.org05/10/2019 I've tried to get in contact, but with no success. Rikki RATTOE Sr. SEC Impresantor05/10/2019 Got a funny feeling... Jeroz05/10/2019 Last time we left off with someone mentioning a foundation and Tron saying let’s discuss that next time iirc kryptoshi05/10/2019 Has anyone taken a look at the merits for this proposal? Thoughts? https://medium.com/systems-nexus/modified-x16r-algorithm-proposal-for-constant-hash-rate-in-short-time-164711dd9044 Medium Modified X16R algorithm proposal for constant hash rate in short time Interpretation Lens V. a0.01 Tron05/10/2019 I did see it. Does anyone think this is a problem? Synicide05/10/2019 It looks interesting... but I'm not sure what it is trying to solve. Looking at netstats, our 1 hour average block time is perfectly 1 minute S1LVA | GetRavencoin.org05/10/2019 Last I heard from him he expressed how important finishing the code was. I wouldnt jump to conclusions on his absence within the community. Synicide05/10/2019 x16r by nature will fluctuate, but DGW seems to be doing a good job keeping consistent block times Tron05/10/2019 Because of relatively broad distribution across the algorithms, the block times are fairly consistent. It is possible, but very, very unlikely to get a sequence that takes up to 4x longer, but that's super rare, and only 4 minutes. We did some timing analysis of the algorithms early on. A few are 1/2 as long as SHA-256 and some are up to 4x longer. But when you randomly select 16 it usually comes out about even. Synicide05/10/2019 1hr avg: 1.02min - 24hr avg: 1min I think we should focus on building, and not trying to fix what isnt necessarily broken Tron05/10/2019 Agreed. Rikki RATTOE Sr. SEC Impresantor05/10/2019 Agreed Tron05/10/2019 Is everyone ok with the frequency (every other week) of this discussion? Jeroz05/10/2019 (Added thumbs down to measure) Tron05/10/2019 @Jeroz Did you do thumbs-up and thumbs down? S1LVA | GetRavencoin.org05/10/2019 Seems appropriate. Its not like the devs dont poke around here and chat anyways. Tron05/10/2019 Anything critical that we should be aware of? Jeroz05/10/2019 When I need a dev, I poke a dev. When that dev is unavailable. I poke another one :smiley: Hans_Schmidt05/10/2019 BlondFrogs was testing some github code last month to create a dividends snapshot database of asset holders at a given blockheight. Is that planned for inclusion? That's the only thing needed for dividends. Jeroz05/10/2019 I hope I didn’t offend any devs With poking around Rikki RATTOE Sr. SEC Impresantor05/10/2019 Was thinking voting would be an excellent use case for restricted assets. Local communities, nations, etc... could kyc their residents radiodub05/10/2019 Is x16r will remain fpga mineable Tron05/10/2019 @Jeroz We're hard to offend. Chill05/10/2019 Is the general dev feeling that the next fork should and will include everything needed for the next 6-9 months (barring something completely unforeseen)? Jeroz05/10/2019 I know :smile: Tron05/10/2019 @radiodub Nearly impossible to stop FPGAs and still keep GPUs Jeroz05/10/2019 About that: voting is another hard fork right? Not too soon? Tron05/10/2019 FPGAs can be reprogrammed as fast. It is silicon (true ASIC) that we can obsolete with a tiny change. @Jeroz Messaging, voting, Tags, Restricted Assets would require a hard fork (upgrade). We could do them each individually, but folks get weary of upgrades, so current plan is to roll them together into one. MrFanelli™05/10/2019 Good idea Jeroz05/10/2019 Oh voting too? MrFanelli™05/10/2019 People will like that Jeroz05/10/2019 I thought that was coming later Tron05/10/2019 Voting is the one that isn't being worked on now. Tags and Restricted assets have taken precedence. Jeroz05/10/2019 I know. But you plan on waiting to fork until voting is also done? That would have my preference tbh But I can see an issue with too many things at the same time Tron05/10/2019 If someone wants to step in, we've had one of our devs sidelined and he was working on BlockBook support so more light wallets can connect to Ravencoin. Mostly test cases needed at this point. S1LVA | GetRavencoin.org05/10/2019 Thats a pretty large upgrade.. Bigger surface for unknowns Rikki RATTOE Sr. SEC Impresantor05/10/2019 At what point would RVN community consider moving to ASICs because having a Bitcoin level of security would eventually be needed? MrFanelli™05/10/2019 Never rikki Tron05/10/2019 @S1LVA | GetRavencoin.org 100% Lots of testing on testnet and bounties. [Dev-Happy] Blondfrogs05/10/2019 I am here :smiley: Tron05/10/2019 @Rikki RATTOE Sr. SEC Impresantor There's nothing inherently wrong with ASICs but it tends to centralize to data centers and less opportunity for anyone to just run their gaming rig overnight and collect RVN. Welcome Blondfrogs MrFanelli™05/10/2019 Asics are too expensive. If we want normal people to mine, then we cant be an asic network Rikki RATTOE Sr. SEC Impresantor05/10/2019 @Tron True but what happens when the chain needs a Bitcoin level of protection? Tron05/10/2019 More GPUs, more FPGAs MrFanelli™05/10/2019 Nvidia loves ravencoin :stuck_out_tongue: Chill05/10/2019 ok, so we are pro FPGAs 𝕿𝖍𝖊 𝕯𝖔𝖓 𝕳𝖆𝖗𝖎𝖘𝖙𝖔 CEO ∞05/10/2019 Build it and they will come Tron05/10/2019 It's all relative. It is cost to attack. If an ASIC isn't available for rent, then only option is rental of non-allocated GPUs Rikki RATTOE Sr. SEC Impresantor05/10/2019 @Chill Eventually everyone will need FPGAs to be profitable on RVN, at that point I don't see why we just don't make the switch to ASICs Tron05/10/2019 Also, as much as we don't focus on price, the price does matter because it determines the amount of electricity and hardware will be deployed to get the block reward. Price increase means more security, more mining means more security means higher price. It's a circle. Chill05/10/2019 someone tell that to the twitter handler HailKira05/10/2019 you guys adding seedphrase to desktop wallet? [Dev-Happy] Blondfrogs05/10/2019 @HailKira We will, just is not a high priority right now. MrFanelli™05/10/2019 Twitter handle wants rvn ded Rikki RATTOE Sr. SEC Impresantor05/10/2019 I just don't see much difference between ASIC and FPGA and I'd rather have the added nethash an ASIC will provide once GPUs are virtually kicked off the network kryptoshi05/10/2019 I'm at 11 GB future proof Tron05/10/2019 That also limits miners to big money, not gaming rigs. Synicide05/10/2019 @Rikki RATTOE Sr. SEC Impresantor you have to keep in mind the 'added nethash' is all relative Rikki RATTOE Sr. SEC Impresantor05/10/2019 FPGAs will limit miners to big $$$ too IMO Tron05/10/2019 @kryptoshi New algo x16r-12G requires 12GB :frowning: Seal <:cricat:> Clubber05/10/2019 But sperating smaller gb cards would lead to less adoption if we ever become a mainstream coin. Adpotion of mining that is Chill05/10/2019 but we are a mainstream coin Seal <:cricat:> Clubber05/10/2019 Mains stream as in what eth did Tron05/10/2019 @Rikki RATTOE Sr. SEC Impresantor I agree. Not a perfect solution. Steelers05/10/2019 Is this a Dev meeting or Algo meeting :smiley: Seal <:cricat:> Clubber05/10/2019 But if we ever go mem lane. We should aim for 6 or 8gb. Tron05/10/2019 Open to other questions. Rikki RATTOE Sr. SEC Impresantor05/10/2019 @Tron Probably not the time and the place to have this discussion as we stand currently but IMO we're gonna have this conversation for real eventually Seal <:cricat:> Clubber05/10/2019 Most cards have 6gb now. kryptoshi05/10/2019 Why 12 gb ? Such a massive jump Seal <:cricat:> Clubber05/10/2019 ^ Would also like to know Tron05/10/2019 @kryptoshi I was joking. You said you had 11GB card. Seal <:cricat:> Clubber05/10/2019 Haha You got em good I cant imaghine the face he had when he was 1gb short Lel Rikki RATTOE Sr. SEC Impresantor05/10/2019 That's what she said kryptoshi05/10/2019 Hahaha MrFanelli™05/10/2019 need a 2080ti Seal <:cricat:> Clubber05/10/2019 How much does the VII have? 16? [Dev-Happy] Blondfrogs05/10/2019 Any other questions you have for us? Hans_Schmidt05/10/2019 @[Dev-Happy] Blondfrogs You were testing some github code last month to create a dividends snapshot database of asset holders at a given blockheight. Is that planned for inclusion? That's the only thing needed for dividends. Chill05/10/2019 a dev might want to contact Crypto Chico for some 'splaining [Dev-Happy] Blondfrogs05/10/2019 I still haven't contacted the developer that was working on dividends. Was pretty busy with some other stuff. I will contact him this next week, and see where we are at for that. Rikki RATTOE Sr. SEC Impresantor05/10/2019 Chico doesn't do interviews, shame. Tron would be a much needed interview for his community [Dev-Happy] Blondfrogs05/10/2019 As far as releasing dividends, I can be released at anytime the code is finished and doesn't require any voting or hardfork to occur kryptoshi05/10/2019 Android asset aware wallet? Seal <:cricat:> Clubber05/10/2019 Is in beta right Tron05/10/2019 Testing went well today on Android. Nearing release. [Dev-Happy] Blondfrogs05/10/2019 as it is a mechanism that is wallet specific liqdmetal05/10/2019 no protocol level dividends you guys are saying? [Dev-Happy] Blondfrogs05/10/2019 correct Tron05/10/2019 DM me if you want to test Android with Asset support. I'll send you the .APK. Rikki RATTOE Sr. SEC Impresantor05/10/2019 RVN gonna be on tZero wallet? :yum: liqdmetal05/10/2019 why not? what is the logic on non-protocol dividends assets + protocol dividends is nirvana [Dev-Happy] Blondfrogs05/10/2019 dividends is pretty much sending payments to addresses. Right now, you would have to do this manually. The dividends code, will allow this to be done quicker and easier. No consensus changes are required. Tron05/10/2019 New Android wallet is BIP44 and original Android wallet is BIP32/BIP39 so the words will not find the funds. You'll need to send them to another wallet, and then send them to new BIP44 derived address. liqdmetal05/10/2019 we already have payments to addresses so dividends is not a feature so much as simple wallet script Hans_Schmidt05/10/2019 @[Dev-Happy] Blondfrogs The dividend code changes look risky'er to me than messaging. Would you consider "tags" branch test-ready? [Dev-Happy] Blondfrogs05/10/2019 Not yet @Hans_Schmidt Dividends is easier then you would think if coded correctly. I still haven't seen the code from the community developer. Excited to view it though. Hans_Schmidt05/10/2019 @[Dev-Happy] Blondfrogs Sorry- I meant restricted, not dividend kryptoshi05/10/2019 @Tron on the Android wallet, anyone successfully added their own node and got it to sync faster? Always have issues. I have a supped up node and cannot get it to work with the Android wallet... [Dev-Happy] Blondfrogs05/10/2019 @Hans_Schmidt Oh, that makes more sense. Yes, they are very risky! That is why we are going to create a new bug bounty program for restricted assets testing. Rikki RATTOE Sr. SEC Impresantor05/10/2019 Once the network does get flooded w FPGAs, should we even consider changing the algo a couple times a year? That would only give bitstream developers added time to hoard their creations for themselves Kind of like they're already doing with their x16r bitstreams :yum: kryptoshi05/10/2019 Flooded... lol... like that hardware has mass production scale like gpus...come on dude MrFanelli™05/10/2019 Bip44 wallet? :smiley: Rikki RATTOE Sr. SEC Impresantor05/10/2019 @kryptoshi Eventually yes, where there's $$$ to be made, people make things happen MrFanelli™05/10/2019 So can we trade from that in the new Binance Dex when RVN get listed? kryptoshi05/10/2019 @Rikki RATTOE Sr. SEC Impresantor Yes Soon TM lol. :soontm: Tron05/10/2019 @kryptoshi There are some things we can do to speed it up. For a new wallet, it shouldn't need to sync. For recovered wallet, it needs to sync from beginning of BIP44 wallet support on iOS so words can be moved between the two. Other options include grabbing the first derived address and looking it up on an explorer to see when it was first used and sync from there. Another option is to add an optional number with the 12 words so it knows when to start syncing. There isn't a good reason on an SPV wallet to sync before the seed was created. kryptoshi05/10/2019 Cool. Glad you are looking at speedup options.. :right_facing_fist: :left_facing_fist: [Dev-Happy] Blondfrogs05/10/2019 @MrFanelli™ If the binance dex support RVN deposits. I am sure you would be able to send from it MrFanelli™05/10/2019 Has binance reached out for any info or anything? I seen that we ranked in some voting competition they had on twitter for an ama Rikki RATTOE Sr. SEC Impresantor05/10/2019 I believe we'll need to create a fund of approximately $300,000 in order to get a BNB-RVN asset created and listed on the Binance FDEX [Dev-Happy] Blondfrogs05/10/2019 In order to work with binance we need Ravencoin integrated into Blockbook. Tron05/10/2019 @MrFanelli™ I've reached back out to Binance on the AMA. MrFanelli™05/10/2019 Awesome :smile: kryptoshi05/10/2019 @Tron you are a natural on the interviews... cool as a cucumber. :sunglasses: Tron05/10/2019 Thanks @kryptoshi [Dev-Happy] Blondfrogs05/10/2019 Cool. We are done for today. Please don't ask us any more questions :smiley: Tron05/10/2019 Thanks everyone!!!! [Dev-Happy] Blondfrogs05/10/2019 Cya everyone!! S1LVA | GetRavencoin.org05/10/2019 Cya happy feet, Thanks Thanks Tron Seal <:cricat:> Clubber05/10/2019 :bepbep:
What has Dash ever copied from others besides the original BTC codebase?
In the spirit of not biting the hand that feeds us, I'm starting this thread to raise awareness of how much Dash copies from Bitcoin Core. It's disappointing to see even some Dash Mods don't understand how much Dash benefits from all the hard work of BTC Core, so let's look at precisely what Dash 12.3 has copied from Bitcoin.
What has Dash ever copied from others besides the original BTC codebase?
Dash copies ("backports") 1000s of BTC Core commits on every major release. Do you know how to use github? If you do, the scale of what Dash has copied from BTC is perfectly clear from looking at https://github.com/dashpay/dash/graphs/contributors You can see most so-called Dash commits were written by Bitcoin devs, and only one Dash dev (UdjinM6) with a significant number of original (IE non-backported) commits. Here are the specifics on all the latest things in Dash 12.3 copied from BTC as well as a statement of Dash's intention to continue copying from BTC for the foreseeable future:
We are going to continue backporting the most notable fixes and improvements from Bitcoin Core versions 0.15 and 0.16 in future releases.
Source: https://github.com/dashpay/dash/pull/2045/files Here is a tiny part of the list of the latest things Dash has copied from BTC Core I'd post the entire list but Reddit says "(THIS IS TOO LONG (MAX: 10000)" LOL!
bc45a2f87 Backport compact blocks functionality from bitcoin (#1966) 8b4c419ed Revert "Merge #7542: Implement "feefilter" P2P message" (#2025) a4b313fd3 Fix std in DBG macro 6a6e4cdc1 Remove remaining using namespace std 08b5c69ef Merge #9643: [refactor] Remove using namespace from wallet/ & util* ccca7af09 Merge #9476: [refactor] Remove using namespace from rpc/ & script/ sources 4ac4e96e8 Merge #9765: Harden against mistakes handling invalid blocks 662ec024a Make peer id logging consistent ("peer=%d" instead of "peer %d") 592d8f073 Use a temp pindex to avoid a const_cast in ProcessNewBlockHeaders 15a8fcf99 Add a CValidationInterface::NewPoWValidBlock callback d28172f57 Call AcceptBlock with the block's shared_ptr instead of CBlock& c99dd9733 [qa] Avoid race in preciousblock test. 807ae74c2 Make CBlockIndex*es in net_processing const 1d1c31052 Fix cmd args handling for -bip9params 64817fe1d [qa] Fix race condition in sendheaders.py b2bc78099 Fix argument to wait_until 026f2e2a8 Merge #8446: [Trivial] BIP9 parameters on regtest cleanup e326bda69 Tests: refactor compact size serialization in mininode 2c810d2c3 Allow changing BIP9 parameters on regtest 45151bd13 Move context-required checks from CheckBlockHeader to Contextual... cef919f18 Merge #9486: Make peer=%d log prints consistent 55ef4d0a9 [wallet] Add include_unsafe argument to listunspent RPC e1e03f42c [wallet] Add IsAllFromMe: true if all inputs are from wallet 611b31ece Merge #9650: Better handle invalid parameters to signrawtransaction ff335e47f [qa] test_framework: Add wrapper for stop_node 64e1bfacd Add BIP32 to bips.md 4bb2af8d1 Merge #9114: [depends] Set OSX_MIN_VERSION to 10.8 61af31531 Merge #8976: libconsensus: Add input validation of flags (#1891) 00a0bc710 Remove "TODO: fix off-by-one" 625252fb4 Allow to pass redirect_stderr=True to initialize_chain and use in wallet-dump.py d56ac5a74 Fix import-rescan.py and add workaround for pruning mode
Notes on a first quick test of NTumblebit, on Linux and regtest.
I just thought I'd jot down a few notes on the experience of trying out the current NTumbleBit code. This is testing on regtest, done for the simple reason that you don't have to wait for testnet blocks (nor sync testnet which is mildly annoying). At this stage I just wanted to learn how this works. Your starting point is this wiki page.
Installation
You need to download Bitcoin Core. Use at least 0.13.1 - this turned out to be only major blocking point in the whole test, funnily enough, for me - it took me a few hours(!) in debugging to realize that the reason my wallet's coins were not being recognized was simply because 0.12.1 didn't support the necessary RPC syntax. (Note to devs: is there a way to expose errors/exception to the user in the client to help with under-the-hood errors like that? RPC configuration errors are exposed, so that's good of course). Since this is regtest, that's it: you don't need to sync any blockchains :) However, you do of course have to configure and start it. Put a bitcoin.conf somewhere (if you're currently running a node it's easiest to make a separate one from your main ~/.bitcoin/bitcoin.conf one, of course. I put one in ~/bitcoin.conf with these settings:
rpcuser=bitcoinrpc rpcpassword=123456abcdef
(you'll need those values again in a minute) and then run with
(I didn't need to add server=1 to config). Note that coins are not available until maturity, so you need to use the generate command to mine blocks, like this:
Now your regtest bitcoind is running, you can move on to Tumblebit. Follow the instructions in the wiki page mentioned at the start; install .Net Core - the Microsoft instructions are easy to follow, just a couple of apt-gets and install the *.deb. Next, clone the github repo and run the Unit Tests. They passed first time for me.
Running
Next, start up the server, following the instructions in the wiki, except note you're using regtest, so:
cd NTumbleBit.TumblerServer dotnet run -regtest
The first start up will compile but also set up RSA keys, all that is fine without changes, but you'll need to edit the config so that the RPC is pointing at your regtest instance properly. In this case it (the new config should be located in ~/.ntumblebit/RegTest/server.config) should be edited to look like:
Then restart and check you get no RPC errors. Leave that console open, it's running a server loop. Next, configure and start the client. Note, we are still following the wiki page, except for the regtest element, so:
cd NTumbleBit.CLI dotnet run -regtest
You'll most likely get an RPC error again, before it shuts down. Now we need to edit the ~/.ntumblebit/RegTest/client.config file. The server can be left as the default localhost:5000, but you need the right RPC settings:
the last two fields are the important bit, which the wiki page explains in some detail for the testnet case.
Details on setting up a receiving wallet (for this test!)
What you need is a BIP32 based wallet (HD) that supports testnet, and can be run against regtest here (which in most cases will be the same thing to a wallet, as long as it can connect via RPC to sync itself). The good news is the wallet doesn't need to contain any coins. The details of the following probably won't be suitable for most (if you've never used joinmarket it's a bit convoluted), so you'll probably want to find another easy to use wallet; the wiki page should be a good starting point. For my test I used joinmarket; all we need to do is (a) hook it up to the regtest instance, and (b) extract the BIP32 xpub key that we'll be sending coins to. So in my case the flow of coins is: Regtest Bitcoin Core wallet (containing 'mined' coins) one branch of my BIP32 joinmarket wallet, configured to sync against the same regtest instance. I used my new joinmarket code but it's the same for the main joinmarket code. I overwrote joinmarket.cfg to have regtest settings (use this file; only the highlighted settings matter, those are the right ones for this test), then just run python wallet-tool.py randomseed. "randomseed" there can be literally anything, it's read as a brainwallet style seed for the bip32 wallet (because testnet, we don't care about its insecurity). The tpub.. keys seen for each branch are the "xpub" public keys at that branch of the BIP32 wallet. Tumblebit is going to send to a branch below whatever xpub we need, so the simplest is to add a print statement to print the xpub key above that; e.g. add this code:
for i in range(max_mix_depth): print('master for index: ' + str( i) + ' : ' + btc.bip32_privtopub(mixing_depth_keys[i]))
immediately above this line. Then run again python wallet-tool.py randomseed. Extract an xpub for any one of the "mixdepths", e.g. I chose:
master for index: 3 : tpubDBFGvUbWtEPKXeWPeG7rUh98iV9GuXSDbnk6ZrZHjcmp134BPByT293HPPQ93DktrVFKpZeAU1ULSdyfmwWuUGvUVLP19JkdUq2mzNKFJPR
and put that tpub.. key into the field pubkey in the above mentioned 'client.config':
Restart the client. If RPC is right, it'll start running, waiting for blocks. Your regtest Core instance will have coins (after the previous generate 101), and those coins will be automatically tumbled, one coin at a time, into the output wallet (in my case, the branch m/0/3/0 which is labelled there 'mixdepth 3, external'). Now you can test and watch the process! Open up a third console and repeatedly generate blocks:
As each block is generated you'll see the state in the client terminal window updating, showing the phases. A new 'epoch' (right term?) is started every N blocks (I haven't investigated the timing yet), and several epochs run concurrently. In each one, the client can pay in 1 Bitcoin (from Core) and eventually get out 1 coin - fees to the destination (Joinmarket in my case, any other BIP32 in yours). You can replace generate 1 with generate N but I'm not sure if the code will always correctly handle you mining lots of blocks at once! After a large enough number of blocks you'll start to see 'ClientCashout phase' occurring, and txids being printed out. You can go back to your (JM or other) wallet and see the coins arriving; here's what I see after a few epochs have gone through (using my python wallet-tool.py randomseed command):
for mixdepth=2 balance=0.00000000btc mixing depth 3 m/0/3/ external addresses m/0/3/0 tpubDDMAxSHJmxzeXwDnATuvtDizqNSsQKpXGufBDnER44BzEbHy7kg485zZwHqvzprgf6yEQYg9qYYfsLYS1HMmdSuXDzQb2dJSiga9geyM62R m/0/3/0/007 mw9s7tYucxB9yr2L6HkqeDVsh3wdgMdcyK used 0.99995750 btc m/0/3/0/008 mq5TgTNgwYHv88Q4T7wL6kTb1MBSPE3mqK used 0.99995750 btc m/0/3/0/009 mhzQFY8FNvux6SKWKLKmhBB3Sw4MLaSnyu used 0.99995750 btc m/0/3/0/010 mrYECmCf5UKa1BBRMuzprVugsCi9z7oiHo new 0.00000000 btc m/0/3/0/011 mopUNXmHT8ngfBymM3c3EYMg7RLZAf6Zc6 new 0.00000000 btc m/0/3/0/012 mmaVXVfQP4UAYJPhMpQ3FhgXfHzujaxyw4 new 0.00000000 btc m/0/3/0/013 mzYD1AcUFz8SVwJM8EjVCfEM6pcYnHooBR new 0.00000000 btc m/0/3/0/014 my5unLCEMWQBkXBdeJ75VVGk1wrMrT8iDE new 0.00000000 btc m/0/3/0/015 muA76YSTtKKmD6HnVKYhkd9K9TZnPLh8pp new 0.00000000 btc internal addresses m/0/3/1 for mixdepth=3 balance=2.99987250btc
Found what looks to be a very old brainwallet phrase. What should I do?
Long story short, my girlfriend was digging through an old wallet of mine and found an extremely weathered, old strip of paper with a 15 word phrase. The words don't coordinate in any way, but I feel as if I absolutely know it must be a brainwallet phrase of some sort from when I was younger. It has to be at least a few years old. How should I go about recovering the wallet made with this phrase if I cannot remember anything about it being generated in the future? I'm kind of confused and a little worried about its length of 15 words, as I believe old BIP32 brainwallets were made with 12 word phrases from a specific dictionary of words (if I remember correctly, that is). I'd assume an age of about 2 to 3 years old, but potentially as old as 5 years. If anyone has helpful advice that leads to opening this wallet, you're entitled to 20% of the funds inside, that is, after I sell it for Bitcoin Cash ;) I know a lot of you are busy watching the network closely and furthering the future of promising crypto like BCH, but figured I'd come here and ask this community. I'm already banned from /bitcoin but there was no point in asking them anyways to begin with.
OWO is an awesome product and it's an example to create less complex blockchain products. For example, you are able to swap OWO for bitcoin without going through an exchange. OWO treats the bitcoin blockchain as an open API. Using your bip32 address we generate an address in your wallet, then listen to that address for a transaction. When a transaction comes in, OWO is released to the buyer. No complex side chains or atomic swaps. OWO is formerly Gamerholic coin, the 1st cryptocurrency created for the world of video games back in 2014. A rebrand was launched last year, to take the coin out of the gaming realm and make it a coin that can be used for anything. More importantly, after having Gamerholic coin on bittrex for 2+ years, we decided to make OWO a none-speculators coin, with a firm belief that doing so would allow us to create a better product. On OWO, users earn, mine or win OWO and businesses buy OWO from users. Businesses need OWO to create local coupon promotions. https://preview.redd.it/bqswvufjh9821.png?width=3360&format=png&auto=webp&s=152bd86e71bfdbe81fa6315561e2b84cb1a47f78 This model creates a perpetual marketplace needless of a 3rd party exchange. OWO currently has 7 working applications, including Gamerholic an application where you can play heads up games and tournaments for bitcoin or OWO. Please visit the site, jump in a grabbit game to win free bitcoin and more. OWO is sha256 POW/POS hybrid with 1.87 coins in circ. 2.5 OWO block rewards every 60 seconds and an unlimited supply. Staking is used to prevent inflation.
There is a new crypto currency #OUICOIN is launching soon which is now in ICO (Initial Coin Offering) phase and has great potential in near future cus it works on Masternode technology which means that you don't need any mining machine or no need of keep your PC on it will work without it and double your coins offline. It is the first Pakistani Product and launching by none other than a Proud Pakistani #WAQARZAKA who is also called ''Crypto King of Pakistan'' who is teaching people about this technology of Blockchain from 2011. Visit the Official website at : ouicoin.io and all development and data of Coin is available at: github.com/ouicoin/ TECHNICAL SPECIFICATION OuiCoin is a Proof of Stake cryptocurrency based on Bitcoin Core, including advancements such as BIP32 HD wallet addresses, dual key Stealth addresses, once-only transaction broadcasting, address index, and an advanced and friendly user interface. Coin Ticket: OUI Coin Type: Full POS Block Time: 60 Seconds Minimum Stake Age: 8 Hours Maximum Stake Age: Unlimited Block Size: 4 MB Total Supply: 100 Million OuiCoins POS Reward: 10% to 15% Yearly Master Node Requirement: 25000 Master Node Reward: 45% of Stake Reward
This is a reminder that people should be using new addresses and coinjoin (or some similar anonymity schema) for each transaction. I've been using GreenAddress.it for a while (BIP32 and 2-of-2 signing with a nlocktime backup transaction to recover my founds), but the Android app is far away from snappy. The usability is good, if you take away the fact that it's very slow, it's very easy to use and you don't have to deal with address generation. I love the idea and the concept behind it, but I feel it's still incomplete. I think it could benefit from a tool to improve anonymity, as many other wallets out there (most of them are way behind GreenAddress, with notable exceptions). I've been talking about bitcoin with non-programmers, techie-friendly people and gave them some bits so they can play around. Many have purchased more bitcoins and I can know most of their balances because of address reuse. Heck, I can generate back the tree of transactions done with my "address-reuse-avoiding wallet" using only a web-based blockchain explorer, given the fact that it's obvious that the addresses starting with "3" are mine and the ones starting with "1" are others'. I think this is a big issue. I'm not talking about "people who have something to hide", it's everybody that is compromised. If bitcoin is to become more ubiquitous, this problem has to be solved from an usability point of view. I'm eager to try coding a "anonymity check" tool to answer questions like these (even after avoiding address reuse, but before CoinJoin):
I know these addresses are John's, what are his spending habits and other possible addresses?
These are my addresses, can somebody learn what are my cold storage wallets?
This is my address that I've been foolishly reusing, what can somebody know about me?
This IP address is known to have broadcasted before most of the other nodes I'm connected to this bunch of transactions, can an identity be established?
Exchange Y sent bitcoins to my address X. With which certainty Y can profile my spending habits and know what addresses are mine?
Some points where this tool can be smart are: differentiate between big outputs and small outputs (the former are most likely to be the change funds or savings account), address reincidence, extra data like first-known-of node that relayed the transaction, detect coinjoin transactions (they are easily identifiable) etc. I'd love to have my privacy checked by a tool like this, that should work offline. Blockchain.info's "taint analysis tool" is too dumb, online, and heavy to be useful. For the paranoid ones: a three-letter-agency might already have one already.
I run a reasonably active service (bustabit.com) which gets an average of ~477 deposits per day, and process ~206 withdrawals per day. And was hoping to use JM to improve the privacy of customers. But before I get into implementing it, I'd like to get your feedback on how it should be done or if it's stable enough to use in production. Here's how my deposit system currently works:
I use bip32 to generate a deposit addresses on demand and save them in the database
After each bitcoin block is mined, I query (with rpc) bitcoind to list all the transactions in the block, and then filter it into a set of all addresses that got paid
I query the database with all the addresses that got paid, to see which ones are deposit addresses
If someone gets paid, I insert the deposit into the db, I credit their account and then run importprivkey with their generated address, so from now on bitcoind is watching that address (so I can spend from it)
If someone makes a withdrawal, I simply call sendtoaddressthrough rpc. What would be the most straightforward/robust way to integrate JM into the flow? Also, note that I process a lot more deposits than withdrawals and can't really afford to make my withdrawal fees any higher. The latest version of bitcoin core tends to do an extraordinarily bad job at managing the wallets unspent output set (it churns all my outputs into ~0.01 BTC) so I was also hoping that JM would help keep it in control when acting as a liquidity provider
Make no mistake this could kill Bitcoin entirely. I know there are many technical solutions, BIP32, dark wallets, mining filters etc etc etc blah blah but the core issue is governance. The idea that fundamental decisions on something as powerful and beneficial as Bitcoin are left to 5 American core devs and 5 big mining pools is absolutely an existential threat to Bitcoin. I think we need to re-boot the Bitcoin Foundation. The Foundation's core overriding principle should be to vehemently oppose anything that is a threat to Bitcoin. Validation, for all of the arguments pro or con, represents exactly such a threat since it would mean a very high probability of a major fork. Many forks, in fact: GovCoin, EverybodyElseCoin, FreeCountryCoin, DarkCoin et cetera ad nauseam. Validation also adds a lot of maintenance and greatly reduces usability, the last thing we need. I think the political arguments about state control and the monetary arguments about fungibility are certainly very important but they all devolve upwards to the elephant issue: governance. You would think it would be important to some of the largest users, the Chinese, to even be aware of these proposed changes, let alone have a voice in governance going forward. Bitcoin is our baby. Let's not let it be strangled in the cradle by McCarthyism and other regional, political, and commercial interests. FIX GOVERNANCE NOW
I understand that the 12 word bitcoin mnemonic is completely secure - that even if someone decided to spin up a huge army of Amazon EC2 instances and set them to work guessing mnemonics, trying to "recover" random wallets by brute forcing the system, they would expend much more on their effort than they would manage to steal. But unlike cracking a password, where you have to combine it with the correct username, this effort - like an attack on brain wallets longer used since they are insecure, could be brute forced and I presume that eventually with enough computing power, wallets would be recovered. I'd like to know if there is a great explanation of this technology available, and if not, why? Perhaps users of bitcoin wallets, when asked to entrust their balances in a few words, have some level of doubt that this is "good enough" for them to secure their bitcoins with, and makes them question the security of the system more than they need to. What would be really great would be a high quality animated video, with references and mathematical proofs, posted on YouTube, that you could refer people to who are not technically or mathematically minded, to set their minds at ease. Because I do think, as adoption outside of the extremely tech literate grows, this question will come up more and more. Sorry I'm not posting this video myself, I'm not a great animator and don't know others who are. I also don't understand all the facts behind this. Perhaps, in leiu of such a video, others could write competing "best explanations for the layman" of this backup tool, and together we could form a really fantastic explanation. Here are some resources on the subject: https://www.reddit.com/Bitcoin/comments/2twczy/how_are_mnemonic_words_secure_only_12_words/https://blog.blockchain.com/.../understanding-mnemonics-and-the-blockchain-wallet/http://bitcoin.stackexchange.com/questions/30879/pros-cons-limitations-of-mnemonic-phrases-bip39http://www.explainxkcd.com/wiki/index.php/936#Explanation People do know that computers are very fast, and the thought of their backup phrase needing to withstand an attack from a supercomputer, or some unknown entity called "hackers" that are out there on the Internet, breaking into things, the better we can explain how insanely well protected they are by mathematics, the better. And maybe, some people would like the option to encrypt their mnemonic with a password of their own choosing - they just might believe by securing it with 1023albertstreetGod, like they do their bank account, will make this OK. Lastly, where are people advised to keep their mnemonic passphrases? Not everyone has a safe. They shouldn't be written down in Google Keep, or saved in an e-mail. Maybe they can write them down in the back of their diary, but what if their house burns down? Personally, mine is buried in the ground. I couldn't think of a fireproof solution (my flat burned down a few years ago, this is a real problem). Some people live in areas that might flood, though, or just not feel like buying a small gardening trowel. There are reasons people would rather trust their money to a bank - the bank guarantee that you can show up, and show them your ID, and get access to your money. And that if your money is stolen by hackers, you'll get a refund. We can secure our own money, but it's new to us, having something we can't just buy an insurance policy for, or give to a third party to look after for us, these aren't things a lot of people are used to dealing with themselves. Custodial accounts are not the answer, as BitFinex and countless other custodial accounts at exchanges demonstrate (some people would have trusted that because BitFinex had "upgraded" their security with BitGo, their funds were maybe safer there than in their own hands). I appreciate that it was BitFinex's setup, not BitGo, that was at fault here, but the point stands - who knows what security some third party are using, better to have trustworthy ways of securing your money aside custodial control. Trezor is great, but still has a backup mnemonic incase your house burns to the ground (or something much less likely). EDIT: Andreas Antonopolous on some of what I wrote here: "Welcome. I’d like to know your take on brain wallets. Most consider brain wallet bad for newbies. Do you think it’s good for cold storage when applied by hardcore bitcoiners? Say, to mix the private key in the password-generation phrases to get a secured address. By the way, I personally use this method for most of my own bitcoins, is it ok? Many thx. No, I think it is a terrible idea to try to make your own brainwallet or try to make complex security solutions if you are not an expert. Even for an expert, the best security is standardized, peer-reviewed, well-tested security. For cold storage I use BIP39 mnemonic phrases and standardized BIP32/BIP44 wallets built on top of those. I do not try to invent my own and I do not use brainwallets." Source: https://docs.google.com/document/d/1BEqEhxJjN05HgAZ_OYvVUJ6kxDvEDxGebLvea7XqP-c/edit?ts=57958319&pref=2&pli=1
Secondly, the extended BIP32 key and its Master Key will be shown, which can be used to retrieve a wallet using Electrum, for example. How is this possible? To understand how a passphrase works you need some basic knowledge about bitcoin storage. When a user receives bitcoins, they are associated with a certain address. The Bitcoin reference client uses randomly generated keys. In order to avoid the necessity for a backup after every transaction, (by default) 100 keys are cached in a pool of reserve keys. Still, these wallets are not intended to be shared and used on several systems simultaneously. Deterministic wallets (Bitcoin Wiki) BIP32: Hierarchical Deterministic Wallets. More intelligent transaction selection for mining. Ancestor fee rate mining is the new default transaction selection method for mining in Bitcoin Core 0.13.0. Miners can use it to select which transactions to put in their next block, providing two important benefits: Bitcoin Core is a community-driven free software project, released under the MIT license. Verify release signatures Download torrent Source code Show version history. Bitcoin Core Release Signing Keys v0.8.6 - 0.9.2.1 v0.9.3 - 0.10.2 v0.11.0+ Or choose your operating system. Windows exe - zip. The Bitcoin reference client uses randomly generated keys. In order to avoid the necessity for a backup after every transaction, (by default) 100 keys are cached in a pool of reserve keys. Still, these wallets are not intended to be shared and used on several systems simultaneously.
Daniel & I continue our discussion of the basics of Bitcoin. Here we talk about Entropy. Skip navigation ... Hierarchical Deterministic wallet - BIP32 and BIP44 ... Crypto Mining Difficulty ... I'm going to talking about top free best bitcoin mining website, and I'm gonna tell you every steps to get bitcoin mining! In this video I'm showing how to m... -The BIP32 Root Keys of the wallet-An address imported with btc. ... bitcoin mining software free, bitcoin mining software for pc, bitcoin hack, free bitcoin, earn bitcoin, earn btc, blockchain ... Buy Raspberry Pi 4 Model B 4GB: https://amzn.to/2tlBfGW How to Setup a Raspberry Pi 4 Bitcoin Mining Rig w/ Bitmain AntMiner U3: https://youtu.be/dPWTSytzN7g... -A valid BIP32 Root Key of the wallet -An address imported from at least 3 BTC(new update) -Finally a good internet connection and good autonomy for your computer