https://github.com/gridcoin-community/Gridcoin-Research/releases/tag/220.127.116.11 Finally! After over ten months of development and testing, "Fern" has arrived! This is a whopper. 240 pull requests merged. Essentially a complete rewrite that was started with the scraper (the "neural net" rewrite) in "Denise" has now been completed. Practically the ENTIRE Gridcoin specific codebase resting on top of the vanilla Bitcoin/Peercoin/Blackcoin vanilla PoS code has been rewritten. This removes the team requirement at last (see below), although there are many other important improvements besides that. Fern was a monumental undertaking. We had to encode all of the old rules active for the v10 block protocol in new code and ensure that the new code was 100% compatible. This had to be done in such a way as to clear out all of the old spaghetti and ring-fence it with tightly controlled class implementations. We then wrote an entirely new, simplified ruleset for research rewards and reengineered contracts (which includes beacon management, polls, and voting) using properly classed code. The fundamentals of Gridcoin with this release are now on a very sound and maintainable footing, and the developers believe the codebase as updated here will serve as the fundamental basis for Gridcoin's future roadmap. We have been testing this for MONTHS on testnet in various stages. The v10 (legacy) compatibility code has been running on testnet continuously as it was developed to ensure compatibility with existing nodes. During the last few months, we have done two private testnet forks and then the full public testnet testing for v11 code (the new protocol which is what Fern implements). The developers have also been running non-staking "sentinel" nodes on mainnet with this code to verify that the consensus rules are problem-free for the legacy compatibility code on the broader mainnet. We believe this amount of testing is going to result in a smooth rollout. Given the amount of changes in Fern, I am presenting TWO changelogs below. One is high level, which summarizes the most significant changes in the protocol. The second changelog is the detailed one in the usual format, and gives you an inkling of the size of this release.
Note that the protocol changes will not become active until we cross the hard-fork transition height to v11, which has been set at 2053000. Given current average block spacing, this should happen around October 4, about one month from now. Note that to get all of the beacons in the network on the new protocol, we are requiring ALL beacons to be validated. A two week (14 day) grace period is provided by the code, starting at the time of the transition height, for people currently holding a beacon to validate the beacon and prevent it from expiring. That means that EVERY CRUNCHER must advertise and validate their beacon AFTER the v11 transition (around Oct 4th) and BEFORE October 18th (or more precisely, 14 days from the actual date of the v11 transition). If you do not advertise and validate your beacon by this time, your beacon will expire and you will stop earning research rewards until you advertise and validate a new beacon. This process has been made much easier by a brand new beacon "wizard" that helps manage beacon advertisements and renewals. Once a beacon has been validated and is a v11 protocol beacon, the normal 180 day expiration rules apply. Note, however, that the 180 day expiration on research rewards has been removed with the Fern update. This means that while your beacon might expire after 180 days, your earned research rewards will be retained and can be claimed by advertising a beacon with the same CPID and going through the validation process again. In other words, you do not lose any earned research rewards if you do not stake a block within 180 days and keep your beacon up-to-date. The transition height is also when the team requirement will be relaxed for the network.
Besides the beacon wizard, there are a number of improvements to the GUI, including new UI transaction types (and icons) for staking the superblock, sidestake sends, beacon advertisement, voting, poll creation, and transactions with a message. The main screen has been revamped with a better summary section, and better status icons. Several changes under the hood have improved GUI performance. And finally, the diagnostics have been revamped.
The wallet sync speed has been DRASTICALLY improved. A decent machine with a good network connection should be able to sync the entire mainnet blockchain in less than 4 hours. A fast machine with a really fast network connection and a good SSD can do it in about 2.5 hours. One of our goals was to reduce or eliminate the reliance on snapshots for mainnet, and I think we have accomplished that goal with the new sync speed. We have also streamlined the in-memory structures for the blockchain which shaves some memory use. There are so many goodies here it is hard to summarize them all. I would like to thank all of the contributors to this release, but especially thank @cyrossignol, whose incredible contributions formed the backbone of this release. I would also like to pay special thanks to @barton2526, @caraka, and @Quezacoatl1, who tirelessly helped during the testing and polishing phase on testnet with testing and repeated builds for all architectures. The developers are proud to present this release to the community and we believe this represents the starting point for a true renaissance for Gridcoin!
Most significantly, nodes calculate research rewards directly from the magnitudes in EACH superblock between stakes instead of using a two- or three- point average based on a CPID's current magnitude and the magnitude for the CPID when it last staked. For those long-timers in the community, this has been referred to as "Superblock Windows," and was first done in proof-of-concept form by @denravonska.
Network magnitude unit pinned to a static value of 0.25
Max research reward allowed per block raised to 16384 GRC (from 12750 GRC)
New CPIDs begin accruing research rewards from the first superblock that contains the CPID instead of from the time of the beacon advertisement
500 GRC research reward limit for a CPID's first stake
6-month expiration for unclaimed rewards
10-block spacing requirement between research reward claims
Rolling 5-day payment-per-day limit
Legacy tolerances for floating-point error and time drift
The need to include a valid copy of a CPID's magnitude in a claim
10-block emission adjustment interval for the magnitude unit
One-time beacon activation requires that participants temporarily change their usernames to a verification code at one whitelisted BOINC project
Verification codes of pending beacons expire after 3 days
Self-service beacon removal
Burn fee for beacon advertisement increased from 0.00001 GRC to 0.5 GRC
Rain addresses derived from beacon keys instead of a default wallet address
Beacon expiration determined as of the current block instead of the previous block
The ability for developers to remove beacons
The ability to sign research reward claims with non-current but unexpired beacons
As a reminder:
Beacons expire after 6 months pass (180 days)
Beacons can be renewed after 5 months pass (150 days)
Renewed beacons must be signed with the same key as the original beacon
Magnitudes less than 1 include two fractional places
Magnitudes greater than or equal to 1 but less than 10 include one fractional place
A valid superblock must match a scraper convergence
Superblock popularity election mechanics
Yes/no/abstain and single-choice response types (no user-facing support yet)
To create a poll, a maximum of 250 UTXOs for a single address must add up to 100000 GRC. These are selected from the largest downwards.
Burn fee for creating polls scaled by the number of UTXOs claimed
50 GRC for a poll contract
0.001 GRC per claimed UTXO
Burn fee for casting votes scaled by the number of UTXOs claimed
0.01 GRC for a vote contract
0.01 GRC to claim magnitude
0.01 GRC per claimed address
0.001 GRC per claimed UTXO
Maximum length of a poll title: 80 characters
Maximum length of a poll question: 100 characters
Maximum length of a poll discussion website URL: 100 characters
Maximum number of poll choices: 20
Maximum length of a poll choice label: 100 characters
Magnitude, CPID count, and participant count poll weight types
The ability for developers to remove polls and votes
[18.104.22.168] 2020-09-03, mandatory, "Fern"
Backport newer uint256 types from Bitcoin #1570 (@cyrossignol)
Implement project level rain for rainbymagnitude #1580 (@jamescowens)
Upgrade utilities (Update checker and snapshot downloadeapplication) #1576 (@iFoggz)
Provide fees collected in the block by the miner #1601 (@iFoggz)
Add support for generating legacy superblocks from scraper stats #1603 (@cyrossignol)
Port of the Bitcoin Logger to Gridcoin #1600 (@jamescowens)
Implement zapwallettxes #1605 (@jamescowens)
Implements a global event filter to suppress help question mark #1609 (@jamescowens)
Add next target difficulty to RPC output #1615 (@cyrossignol)
Add caching for block hashes to CBlock #1624 (@cyrossignol)
Make toolbars and tray icon red for testnet #1637 (@jamescowens)
Add an rpc call convergencereport #1643 (@jamescowens)
Implement newline filter on config file read in #1645 (@jamescowens)
Implement beacon status icon/button #1646 (@jamescowens)
Add gridcointestnet.png #1649 (@caraka)
Add precision to support magnitudes less than 1 #1651 (@cyrossignol)
Replace research accrual calculations with superblock snapshots #1657 (@cyrossignol)
Publish example gridcoinresearch.conf as a md document to the doc directory #1662 (@jamescowens)
Add options checkbox to disable transaction notifications #1666 (@jamescowens)
Add support for self-service beacon deletion #1695 (@cyrossignol)
Add support for type-specific contract fee amounts #1698 (@cyrossignol)
Add verifiedbeaconreport and pendingbeaconreport #1696 (@jamescowens)
Add preliminary testing option for block v11 height on testnet #1706 (@cyrossignol)
Add verified beacons manifest part to superblock validator #1711 (@cyrossignol)
Implement beacon, vote, and superblock display categories/icons in UI transaction model #1717 (@jamescowens)
Upcoming Major Riecoin 0.20 Upgrade A new major Riecoin upgrade is planned, and includes a hard fork. Below is a summary of the changes so far and the hard fork improvements. More details can be found on BitcoinTalk. Feel free to ask Pttn there or on Discord if you have questions regarding the update. The first step of this upgrade was to update the base code to Bitcoin’s 0.20, which is done. You can find the experimental code at the Github repository. Experimental binaries can also be downloaded here. Despite their prerelease status, they should work fine, though please backup your wallets if you plan to use 0.20, just in case. Pool operators and other advanced Riecoin users should start looking into the changes and update their software accordingly, as well as closely follow the Riecoin Core development. Here is a list of notable changes from 0.16.3.1.
There were inconsistencies regarding the nTime and nBits positions in the Block Header. This is now fixed, with nTime always coming before nBits like for Bitcoin. Note that rieMiner needs an update to Solo Mine with 0.20, which is already available;
Testnet was reset. Additionally, the constellations for Testnet are no longer sextuplets, but quadruplets, and the minimum Difficulty was raised to 600. If you want to run a public Testnet node, please use the bootstrap found here and share your node IP;
The “getnetworkhashps” command was replaced by “getnetworkminingpower” and uses a new metric, standardized such that 1 correspond to mining a minimum difficulty block (Difficulty 304 in Mainnet or 600 in Testnet) every 150 s;
The GetBlockTemplate’s “primes” field is replaced by “constellations”, which gives a list of accepted constellations for mining. The “segwit” rule is now mandatory;
The “getprimes” RPC call is replaced by “getresult” and gives directly the base prime number, instead of all the prime numbers;
Generated addresses are now Bech32 by default;
The RegTest is now properly implemented (the PoW here is simply prime numbers). Most of the test units were ported to Riecoin;
And of course, all the Bitcoin features and bug fixes since 0.17 are now included in Riecoin. Read the Bitcoin Core change logs for more information.
The next step will be the hard fork, in order to improve Riecoin in multiple ways. Here is the list of planned changes.
The constellation pattern will be changed from sextuplets to septuplets (quintuplets in Testnet). Both possible patterns will be accepted, so the blockchain will provide more diverse results. One of them will have a chance to be a 8-tuple or longer, which would help a lot to beat records and improve the Riecoin’s scientific usefulness. Moreover, longer tuples are more practical as PoW;
The SuperBlock system will be removed. While records have indeed been broken this way, it also has significant drawbacks, like freezing the network during an hour every week and a complicated implementation that also confuses a lot of people;
The Difficulty Adjustment Algorithm will be updated to improve the network’s robustness and make the adjustment more dynamic. No particular algorithm has been chosen yet and the discussion is open;
The nOffset encoding will be updated in order to allow more efficient mining.
Once the development is advanced enough, a date will be chosen for the hard fork. Testnet will be hardforked first to ensure the well functioning of the implementation. Stay tuned!
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.
Groestlcoin Mainnet & Testnet supported
Multiple wallet support
Electrum - Support for both random and custom peers
Biometric + Pin authentication
Custom fee selection
Import mnemonic phrases via manual entry or scanning
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.
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.
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).
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).
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.
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
Fixed Import/Export to wallet.dat
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 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.
Use your own node
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.
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.
Rework of the Bitcoin fuzzer command line driver tool
Add stand alone cpu miner to the set of binaries (useful to showcase the new mining RPC calls, provides a template for development of mining pool software, and is valuable for regtest/testnet mining)
Cashlib: create a shared library to make creating wallets easier (experimental, this library factors useful functionality out of bitcoind into a separate shared library that is callable from higher level languages. Currently supports transaction signing, additional functionality TBD)
Improve QA machinery (travis mainly)
Port Hierarchical Deterministic wallet (BIP 32)
add space-efficient mining RPC calls that send only the block header, coinbase transaction, and merkle branch: getminingcandidate, submitminingsolution
. Well folks the day has finally come. Gridcoin's newest mandatory, 22.214.171.124, CBR is here. Betsy is ready for showtime!
126.96.36.199 is a mandatory update for all users. This means you must update your wallet before the hard fork date or you will be left behind. The hard fork is set at block 1,420,000. This is approximately 20 days from now. We expect the hard fork to occur on either November 7th or 8th. Please update before then!
The biggest change in 4.0 is, of course our new block version, v10. This brings CBR (constant block rewards) to Gridcoin. Instead of earning 1.5% APR from Proof of Stake, every block will instead be worth a static 10 GRC. This change follows network consensus through three seperate polls with the aim to increase network difficulty, and by extension, increase the strength and security of the Gridcoin blockchain.
If you wish to see resources about how to optimize your staking for CBR, please see this excellent post by core developer @jamescowens.
Linux PPAs are now updated! The Windows MSI can be downloaded here. Checksum. Full changelog for the 4.0 release:
Linux nodes can now stake superblocks using forwarded contracts, #1060 (@tomasbrod).
Replace interest with constant block reward #1160 (@tomasbrod). Fork is set to trigger at block 1420000. Raise coinstake output count limit to 8 #1261 (@tomasbrod). Port of Bitcoin hash implementation #1208 (@jamescowens). Minor canges for the build documentation #1091 (@Lenni). Allow sendmany to be used without an account specified #1158 (@Foggyx420).
Fix cpids and validcpids not returning the correct data #1233 (@Foggyx420). Fix listsinceblock not showing mined blocks to change addresses, #501 (@Foggyx420). Fix crash when raining using a locked wallet #1236 (@Foggyx420). Fix invalid stake reward/fee calculation (@jamescowens). Fix divide by zero bug in getblockstats RPC #1292 (@Foggyx420). Bypass historical bad blocks on testnet #1252 (@Quezacoatl1). Fix MacOS memorybarrier warnings #1193 (@ghost).
Remove neuralhash from the getpeerinfo and node stats #1123 (@Foggyx420). Remove obsolete NN code #1121 (@Foggyx420). Remove (lower) Mint Limiter #1212 (@tomasbrod).
Thank you to all our of dedicated developers for all the hard work and long nights that have gone into making this release a reality. Thank you also to all of the dedicated folks on testnet who have been so helpful in finding and helping solve critical issues before we released this massive overhaul. We couldn't have done this without your help.
[DEVELOPMENT] Bitcoind IPV4 testnet port (18332) is failing to bind
[SOLVED] Thanks for everyone that have helped!
Hello everyone, this is a development problem that I'm currently having. Since the BTC Development sub is kind of inactive and I couldn't find any rule contraty to posting about BTC Development, I'll try my luck in here as I'm hopeless already. I've posted on BTC Stack Exchange but no answers also. Please, don't get me wrong, I'm trying to solve this problem for many days now, I've looked up everywhere for this. I'm new to Bitcoin development and I'm currently having difficulties trying to make RPC calls from a Docker Container to a Bitcoin-Core daemon running in a SSH server. I suppose that the problem may be with Firewall or closed ports, but I also do not know much about Network settings. I'm using nbobtc/bitcoind-php package to make the RPC calls with HTTP requests, and it is running in a Docker container. I'm sure the container is functional and is not the problem. So here's what happening: when I run bitcoind in root user (but normal also won't work) in my SSH server, the IPV4 testnet port seems to be not opened. This message goes up when I run bitcoind:
Here's what my bitcoin.conf looks like (I want to use testnet in here). I'm using Bitcoin-Core "subversion": "Satoshi:0.17.1".
server=1 debug=net txindex=1 testnet=1 rpcuser=userb rpcpassword=test test.rpcport=18332 # I've already tried allowing the IP these 3 ways: # rpcallowip=192.168.xx.xx # My machine's IP # rpcallowip=172.19.x.x/xx # Docker's NBOBTC container IP # rpcallowip=0.0.0.0/0 # Allowing all IP datadir=/home/bitcoin-dev/.bitcoin debuglogfile=/home/bitcoin-dev/.bitcoin/debug.log
Here's what appears in debug.log right after I run Bitcoind:
2019-05-06T14:43:10Z Bitcoin Core version v0.17.1 (release build) 2019-05-06T14:43:10Z InitParameterInteraction: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1 2019-05-06T14:43:10Z Assuming ancestors of block 0000000000000037a8cd3e06cd5edbfe9dd1dbcc5dacab279376ef7cfc2b4c75 have valid signatures. 2019-05-06T14:43:10Z Setting nMinimumChainWork=00000000000000000000000000000000000000000000007dbe94253893cbd463 2019-05-06T14:43:10Z Using the 'sse4(1way),sse41(4way)' SHA256 implementation 2019-05-06T14:43:10Z Default data directory /root/.bitcoin 2019-05-06T14:43:10Z Using data directory /home/bitcoin-dev/.bitcoin/testnet3 2019-05-06T14:43:10Z Using config file /home/bitcoin-dev/.bitcoin/bitcoin.conf 2019-05-06T14:43:10Z Using at most 125 automatic connections (1024 file descriptors available) 2019-05-06T14:43:10Z Using 16 MiB out of 32/2 requested for signature cache, able to store 524288 elements 2019-05-06T14:43:10Z Using 16 MiB out of 32/2 requested for script execution cache, able to store 524288 elements 2019-05-06T14:43:10Z Using 4 threads for script verification 2019-05-06T14:43:10Z scheduler thread start 2019-05-06T14:43:10Z Binding RPC on address 0.0.0.0 port 18332 failed. 2019-05-06T14:43:10Z HTTP: creating work queue of depth 16 2019-05-06T14:43:10Z Config options rpcuser and rpcpassword will soon be deprecated. Locally-run instances may remove rpcuser to use cookie-based auth, or may be replaced with rpcauth. Please see share/rpcauth for rpcauth auth generation. 2019-05-06T14:43:10Z HTTP: starting 4 worker threads 2019-05-06T14:43:10Z Using wallet directory /home/bitcoin-dev/.bitcoin/testnet3/wallets 2019-05-06T14:43:10Z init message: Verifying wallet(s)... 2019-05-06T14:43:10Z Using BerkeleyDB version Berkeley DB 4.8.30: (April 9, 2010) 2019-05-06T14:43:10Z Using wallet wallet.dat 2019-05-06T14:43:10Z BerkeleyEnvironment::Open: LogDir=/home/bitcoin-dev/.bitcoin/testnet3/wallets/database ErrorFile=/home/bitcoin-dev/.bitcoin/testnet3/wallets/db.log 2019-05-06T14:43:10Z net: setting try another outbound peer=false 2019-05-06T14:43:10Z Cache configuration: 2019-05-06T14:43:10Z * Using 2.0MiB for block index database 2019-05-06T14:43:10Z * Using 56.0MiB for transaction index database 2019-05-06T14:43:10Z * Using 8.0MiB for chain state database 2019-05-06T14:43:10Z * Using 384.0MiB for in-memory UTXO set (plus up to 286.1MiB of unused mempool space) 2019-05-06T14:43:10Z init message: Loading block index... 2019-05-06T14:43:10Z Opening LevelDB in /home/bitcoin-dev/.bitcoin/testnet3/blocks/index 2019-05-06T14:43:10Z Opened LevelDB successfully 2019-05-06T14:43:10Z Using obfuscation key for /home/bitcoin-dev/.bitcoin/testnet3/blocks/index: 0000000000000000 2019-05-06T14:43:19Z LoadBlockIndexDB: last block file = 161 2019-05-06T14:43:19Z LoadBlockIndexDB: last block file info: CBlockFileInfo(blocks=755, size=30875345, heights=1513309...1514061, time=2019-04-29...2019-05-03) 2019-05-06T14:43:19Z Checking all blk files are present... 2019-05-06T14:43:20Z Opening LevelDB in /home/bitcoin-dev/.bitcoin/testnet3/chainstate 2019-05-06T14:43:20Z Opened LevelDB successfully 2019-05-06T14:43:20Z Using obfuscation key for /home/bitcoin-dev/.bitcoin/testnet3/chainstate: 2686d59caeb1917c 2019-05-06T14:43:20Z Loaded best chain: hashBestChain=00000000b3b6a5db140b6058b7abe5cb00d8af61afd2a237ae3468cd36e387fa height=927391 date=2016-09-08T15:04:00Z progress=0.311180 2019-05-06T14:43:20Z init message: Rewinding blocks... 2019-05-06T14:43:29Z init message: Verifying blocks... 2019-05-06T14:43:29Z Verifying last 6 blocks at level 3 2019-05-06T14:43:29Z [0%]...[16%]...[33%]...[50%]...[66%]...[83%]...[99%]...[DONE]. 2019-05-06T14:43:29Z No coin database inconsistencies in last 6 blocks (500 transactions) 2019-05-06T14:43:29Z block index 19450ms 2019-05-06T14:43:29Z Opening LevelDB in /home/bitcoin-dev/.bitcoin/testnet3/indexes/txindex 2019-05-06T14:43:30Z Opened LevelDB successfully 2019-05-06T14:43:30Z Using obfuscation key for /home/bitcoin-dev/.bitcoin/testnet3/indexes/txindex: 0000000000000000 2019-05-06T14:43:30Z init message: Loading wallet... 2019-05-06T14:43:30Z txindex thread start 2019-05-06T14:43:30Z [default wallet] nFileVersion = 170100 2019-05-06T14:43:30Z [default wallet] Keys: 2005 plaintext, 0 encrypted, 2005 w/ metadata, 2005 total. Unknown wallet records: 1 2019-05-06T14:43:30Z Syncing txindex with block chain from height 694205 2019-05-06T14:43:30Z [default wallet] Wallet completed loading in 123ms 2019-05-06T14:43:30Z [default wallet] setKeyPool.size() = 2000 2019-05-06T14:43:30Z [default wallet] mapWallet.size() = 7 2019-05-06T14:43:30Z [default wallet] mapAddressBook.size() = 4 2019-05-06T14:43:30Z mapBlockIndex.size() = 1515581 2019-05-06T14:43:30Z nBestHeight = 927391 2019-05-06T14:43:30Z torcontrol thread start 2019-05-06T14:43:30Z Bound to [::]:18333 2019-05-06T14:43:30Z Bound to 0.0.0.0:18333 2019-05-06T14:43:30Z init message: Loading P2P addresses... 2019-05-06T14:43:30Z Loaded 10420 addresses from peers.dat 36ms 2019-05-06T14:43:30Z init message: Loading banlist... 2019-05-06T14:43:30Z Loaded 0 banned node ips/subnets from banlist.dat 29ms 2019-05-06T14:43:30Z init message: Starting network threads... 2019-05-06T14:43:30Z net thread start 2019-05-06T14:43:30Z dnsseed thread start 2019-05-06T14:43:30Z addcon thread start 2019-05-06T14:43:30Z msghand thread start 2019-05-06T14:43:30Z init message: Done loading 2019-05-06T14:43:30Z opencon thread start
After all that appears above, there are just "UpdateTip", "Requesting block", "received block" and "getdata" messages. (so the P2P port, 18333, works). And here is when I netstat: sudo netstat -nap|grep bitcoin|grep LISTEN
How To Set Up a Firewall Using FirewallD on CentOS 7
The majority of this definition is actually metadata. You will want to change the short name for the service within the tags. This is a human-readable name for your service. You should also add a description so that you have more information if you ever need to audit the service. The only configuration you need to make that actually affects the functionality of the service will likely be the port definition where you identify the port number and protocol you wish to open. This can be specified multiple times. For our “example” service, imagine that we need to open up port 7777 for TCP and 8888 for UDP. By entering INSERT mode by pressing i , we can modify the existing data center in moldova definition with something like this: /etc/firewalld/services/example.xml
Example ServiceThis is just an example service. It probably shouldn't be used on a real system.
Press ESC , then enter :x to save and close the file. Reload your firewall to get access to your new service:
sudo firewall-cmd --reload
You can see that it is now among the list of available services:
You can now use this service in your zones as you normally would.
Creating Your Own Zones
While the predefined zones will probably be more than enough for most users, it can be helpful to define your own zones that are more descriptive of their function server management in romania. For instance, you might want to create a zone for your web server, called “publicweb”. However, you might want to have another zone configured for the DNS service you provide on your private network. You might want a zone called “privateDNS” for that. When adding a zone, you must add it to the permanent firewall configuration. You can then reload to bring the configuration into your running session. For instance, we could create the two zones we discussed above by typing:
sudo firewall-cmd --permanent --new-zone=privateDNS You can verify that these are present in your permanent configuration by typing:
sudo firewall-cmd --permanent --get-zones outputblock dmz drop external home internal privateDNS public publicweb trusted work
As stated before, these won’t be available in the current instance of the firewall yet:
firewall-cmd --get-zones outputblock dmz drop external home internal public trusted work
Reload the firewall to bring these new zones into the active configuration:
sudo firewall-cmd --reload
firewall-cmd --get-zones outputblock dmz drop external home internal privateDNS public publicweb trusted work Now, you can begin assigning the appropriate services and ports to your zones. It’s usually a good idea to adjust the web hosting in moldova active instance and then transfer those changes to the permanent configuration after testing. For instance, for the “publicweb” zone, you might want to add the SSH, HTTP, and HTTPS services:
sudo firewall-cmd --zone=privateDNS --list-all outputprivateDNS interfaces: sources: services: dns ports: masquerade: no forward-ports: icmp-blocks: rich rules: We could then change iaas platform in romania our interfaces over to these new zones to test them out:
sudo firewall-cmd --zone=privateDNS --change-interface=eth1 At this point, you have the opportunity to test your configuration. If these values work for you, you will want to add the same rules to the permanent configuration. You can do that by re-applying the rules with the --permanent flag:
sudo firewall-cmd --zone=publicweb --permanent --add-service=http sudo firewall-cmd --zone=publicweb --permanent --add-service=https sudo firewall-cmd --zone=privateDNS --permanent --add-service=dns After permanently applying these your rules, you can restart your hourly kvm vps in europe network and reload your firewall service:
sudo systemctl restart network
sudo systemctl reload firewalld Validate that the correct zones were assigned:
You have successfully set up your dedicated server in romania! If you want to make one of these zones the default for other interfaces, remember to configure that behavior with the --set-default-zone= parameter:
sudo firewall-cmd --set-default-zone=publicweb
You should now have a windows remote desktop fairly good understanding of how to administer the firewalld service on your CentOS system for day-to-day use. The firewalld service allows you to configure reseller kvm vps program maintainable rules and rule-sets that take into consideration your network environment. It allows you to seamlessly transition between different firewall policies through the use of zones and gives administrators the ability to abstract the port management into more friendly service definitions. Acquiring a working knowledge of this system will allow you to take advantage of the kvm virtual server flexibility and power that this tool provides.
Soo after almost 3 months of setting up I have my own LN full node running on RP3
I have been eager to try LN mainnet since the very beginning of it. I've found out about lnd, eclair, zap and other wallets but every scenario I tried to use it failed because of critical issues:
eclair does not really constitute a wallet, it's more like a credit card - you can send money but not receive it
lnd is okay, but requires a server and tons of resources for maintaining a full node, can't be used securely, efficiently and mobily at the same time
zap offers some cloud wallet (in testnet!) by default, this is a serious misunderstanding of my cryptoanarchy needs
web wallets - ah, forget it
So I've decided to use my Raspberry Pi with a very old laptop HDD attached (200GB so the pruning function has to be used) to create a backend wallet service and zap desktop (temporarily!) as my frontend control panel. https://preview.redd.it/0vcq147887q11.png?width=1024&format=png&auto=webp&s=7bb6eccdd4110a857e5af0400acc2d7e1ee7ee85 Setting up Pi is easy, lots of tutorials over the internet, not gonna discuss it here. Then I had to obtain bitcoind (current rel: bitcoin-0.17.0-arm-linux-gnueabihf.tar.gz) and lnd (lnd-linux-armv7-v0.5-beta.tar.gz), create a bitcoin technical user, deploy the tools, configure and install new systemd services and go through the configs. This is a tricky part, so let's share:
# Generated by https://jlopp.github.io/bitcoin-core-config-generato # This config should be placed in following path: # ~/.bitcoin/bitcoin.conf # [core] # Set database cache size in megabytes; machines sync faster with a larger cache. Recommend setting as high as possible based upon machine's available RAM. dbcache=100 # Keep at most unconnectable transactions in memory. maxorphantx=10 # Keep the transaction memory pool below megabytes. maxmempool=50 # Reduce storage requirements by only storing most recent N MiB of block. This mode is incompatible with -txindex and -rescan. WARNING: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, 1 = allow manual pruning via RPC, greater than 550 = automatically prune blocks to stay under target size in MiB). prune=153600 # [network] # Maintain at most N connections to peers. maxconnections=40 # Use UPnP to map the listening port. upnp=1 # Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = no limit. maxuploadtarget=5000 # [debug] # Log IP Addresses in debug output. logips=1 # [rpc] # Accept public REST requests. rest=1 # [wallet] # Do not load the wallet and disable wallet RPC calls. disablewallet=1 # [zeromq] # Enable publishing of raw block hex to . zmqpubrawblock=tcp://127.0.0.1:28332 # Enable publishing of raw transaction hex to . zmqpubrawtx=tcp://127.0.0.1:28333 # [rpc] # Accept command line and JSON-RPC commands. server=1 # Username and hashed password for JSON-RPC connections. The field comes in the format: :$. RPC clients connect using rpcuser=/rpcpassword= arguments. You can generate this value with the ./share/rpcauth/rpcauth.py script in the Bitcoin Core repository. This option can be specified multiple times. rpcauth=xxx:yyy$zzz
Whooaa, this online config generator is really helpful, but I still had to manually correct a few things. The last line is obviously generated by rpcauth.py, I disabled the wallet functionality as lnd is going to take care of my funds. ZMQ is not available to the network so only my LND can use it, RPC usage I still have to think through a little, in general I would like to have my own block explorer some day but also be safe from any hacking attempts (thus I would need at least 2 RPC ports/user accounts - one for lnd, one for block explorer frontend). No ports open on firewall at this time, only UPnP is active and gently opens 8333 for block/tx transfers. Now, synchronizing the blockchain took me time from mid-July to early September... The hard drive is really slow, also my external HDD drive has some trouble with its A/C adapter so Pi was getting undervoltage alerts all the time. Luckily, it is just downclocking when it happens and slowly but steadily synchronized the whole history. After all, I'm not paying even $5 monthly for a VPS, it is by design the cheapest hardware I could use to set up my LN wallet. When bitcoind was ready (I've heard some stories about btcd but I don't trust this software yet, sorry), it's time to configure lnd.conf:
Here I've had to XXX a little more fields, as not only the bitcoind RPC credentials are stored here, but also my node's public information (it should be illegal to run nodes without specifically selected color and alias!). It is public (and I had to open port 9735 on my firewall), but not necessarily connected to my reddit account for most of the adversaries, so let's keep it this way. In fact, I also see a security vulnerability here: my whole node's stability depends on the IP being static. I could swap it for a .tk domain but who can tell if the bad guys won't actively fight DNS system in order to prevent global economic revolution? As such, I would rather see node identification in LN based on a public key only with possible *hints* of last-known-ip-address but the whole discovery should be performed by the nodes themself in a p2p manner, obviously preventing malicious actors from poisoning the network in some way. For now, I consider the IP stability a weak link and will probably have to pay extra Bitcoin TX fees when something happens to it (not much of a cost luckily!). https://preview.redd.it/hjd1nooo77q11.png?width=741&format=png&auto=webp&s=14214fc36e3edf139faade930f4069fc31a3e883 Okay then, lnd is up and running, had to create a wallet and give it a night for getting up to speed. I don't know really what took it so long, I'm not using Windows nor 'localhost' in the config so the issues like #1027 are not the case. But there are others like #1545 still open so I'm not going to ponder much on this. I haven't really got any idea how to automatically unlock the wallet after Pi restart (could happen any time!), especially since I only tried to unlock it locally with lncli (why would I enter the password anywhere outside that host?), but let's say that my wallet will only be as stable as my cheap hardware. That's okay for the beta phase. Finally, zap-desktop required me to copy tls.cert and admin.macaroon files to my desktop. If my understanding of macaroon (it's like an authentication cookie, that can later be revoked) is correct then it's not an issue, however it would be nice to have a "$50 daily limit" macaroon file in the future too, just to avoid any big issues when my client machine gets stolen. Thanks to this, I can ignore the silly cloud-based modes and have fully-secure environment of my home network being the only link from me to my money. https://preview.redd.it/11bw3dgw47q11.png?width=836&format=png&auto=webp&s=b7fa7c88d14f22441cbbfc0db036cddfd7ea8424 Aaand there it is. The IP took some time to advertise, I use 1ml.com to see if my node is there. The zap interface (ZapDesktop-linux-amd64-v0.2.2-beta.deb) lacks lots of useful information so I keep learning lncli syntax to get more data about my new peers or the routes offered. The transactions indeed run fast and are ridiculously cheap. I would really love to run Eclair with the same settings but it doesn't seem to support custom lnd (why?). In fact, since all I need is really a lncli wrapper, maybe it will be easy to write my own (seen some web gui which weighs 700MB after downloading all dependencies with npm - SICK!). Zap for iOS alpha test registration is DOWN so I couldn't try it (and I'm not sure if it allows custom lnd selection), Zap for Android doesn't even exist yet... I made a few demo transactions and now I will explore all those fancy t-shirt stores as long as the prices are still in "early investor" mode - I remember times when one could get 0.001 BTC from a faucet... https://preview.redd.it/42sdyoce57q11.png?width=836&format=png&auto=webp&s=7ec8917eaf8f3329d51ce3e30e455254027de0ee If you find any of the facts presented by me false, I am happy to find out more in the discussion. However what I did I did mostly for fun, without paying much attention to the source code, documentation and endless issue lists on github. By no means I claim this tutorial will work for you but I do think I shared the key points and effort estimations to help others decide if they want a full-node LN client too. I'm also interested in some ideas on what to do with it next (rather unlikely that I will share my lnd admin.macaroon with anyone!) especially if it gives me free money. For example, I can open 1000 channels and start earning money from fees, although I no longer have more Bitcoins than the LN capacity yields... I will probably keep updating the software on my Pi until it leaves beta phases and only then will pour more money inside. I'm also keen on improving the general security of my rig and those comments I will answer more seriously.
Final version 1.3.0 of the core software was released bringing all the enhancements reported last month to the rest of the community. The groundwork for SPV (simplified payment verification) is complete, another reduction of fees is being deployed, and performance stepped up once again with a 50% reduction in startup time, 20% increased sync speed and more than 3x faster peer delivery of block headers (a key update for SPV). Decrediton's integrations of SPV and Politeia are open for testing by experienced users. Read the full release notes and get the downloads on GitHub. As always, don't forget to verify signatures. dcrd: completed several steps towards multipeer downloads, improved introduction to the software in the main README, continued porting cleanups and refactoring from upstream btcd. Currently in review are initial release of smart fee estimator and a change to UTXO set semantics. The latter is a large and important change that provides simpler handling, and resolves various issues with the previous approach. A lot of testing and careful review is needed so help is welcome. Educational series for new Decred developers by @matheusd added two episodes: 02 Simnet Setup shows how to automate simnet management with tmux and 03 Miner Reward Invalidation explains block validity rules. Finally, a pull request template with a list of checks was added to help guide the contributors to dcrd. dcrwallet: bugfixes and RPC improvements to support desktop and mobile wallets. Developers are welcome to comment on this idea to derive stakepool keys from the HD wallet seed. This would eliminate the need to backup and restore redeem scripts, thus greatly improving wallet UX. (missed in July issue) Decrediton: bugfixes, refactoring to make the sync process more robust, new loading animations, design polishing. Politeia: multiple improvements to the CLI client (security conscious users with more funds at risk might prefer CLI) and security hardening. A feature to deprecate or timeout proposals was identified as necessary for initial release and the work started. A privacy enhancement to not leak metadata of ticket holders was merged. Android: update from @collins: "Second test release for dcrandroid is out. Major bugs have been fixed since last test. Latest code from SPV sync has been integrated. Once again, bug reports are welcome and issues can be opened on GitHub". Ask in #dev room for the APK to join testing. A new security page was added that allows one to validate addresses and to sign/verify messages, similar to Decrediton's Security Center. Work on translations is beginning. Overall the app is quite stable and accepting more testers. Next milestone is getting the test app on the app store. iOS: the app started accepting testers last week. @macsleven: "the test version of Decred Wallet for iOS is available, we have a link for installing the app but the builds currently require your UDID. Contact either @macsleven or @raedah with your UDID if you would like to help test.". Nearest goal is to make the app crash free. Both mobile apps received new design themes. dcrdata: v3.0 was released for mainnet! Highlights: charts, "merged debits" view, agendas page, Insight API support, side chain tracking, Go 1.11 support with module builds, numerous backend improvements. Full release notes here. This release featured 9 contributors and development lead @chappjc noted: "This collaboration with @raedahgroup on our own block explorer and web API for @decredproject has been super productive.". Up next is supporting dynamic page widths site wide and deploying new visual blocks home page. Trezor: proof of concept implementation for Trezor Model T firmware is in the works (previous work was for Model One). Ticket splitting: updated to use Go modules and added simnet support, several fixes. docs: beginner's guide overhaul, multiple fixes and cleanups. decred.org: added 3rd party wallets, removed inactive PoW pools and removed web wallet. @Richard-Red is building a curated list of Decred-related GitHub repositories. Welcome to new people contributing for the first time: @klebe, @s_ben, @victorguedes, and PrimeDominus! Dev activity stats for September: 219 active PRs, 197 commits, 28.7k added and 18.8k deleted lines spread across 6 repositories. Contributions came from 4-10 developers per repository. (chart)
Hashrate: started and ended the month around 75 PH/s, hitting a low of 60.5 and a new high of 110 PH/s. BeePool is again the leader with their share varying between 23-54%, followed by F2Pool 13-30%, Coinmine 4-6% and Luxor 3-5%. As in previous months, there were multiple spikes of unidentified hashrate. Staking: 30-day average ticket price is 98 DCR (+2.4). The price varied between 95.7 and 101.9 DCR. Locked DCR amount was 3.86-3.96 million DCR, or 45.7-46.5% of the supply. Nodes: there are 201 public listening nodes and 325 normal nodes per dcred.eu. Version distribution: 5% are v1.4.0(pre) dev builds (+3%), 30% on v1.3.0 (+25%), 42% on v1.2.0 (-20%), 15% on v1.1.2 (-7%), 6% on v1.1.0. More than 76% of nodes run v1.2.0 and higher and therefore support client filters. Data as of Oct 1.
Obelisk posted two updates on their mailing list. 70% of Batch 1 units are shipped, an extensive user guide is available, Obelisk Scanner application was released that allows one to automatically update firmware. First firmware update was released and bumped SC1 hashrate by 10-20%, added new pools and fixed multiple bugs. Next update will focus on DCR1. It is worth a special mention that the firmware source code is now open! Let us hope more manufacturers will follow this example. A few details about Whatsminer surfaced this month. The manufacturer is MicroBT, also known as Bitwei and commonly misspelled as Bitewei. Pangolinminer is a reseller, and the model name is Whatsminer D1. Bitmain has finally entered Decred ASIC space with their Antminer DR3. Hash rate is 7.8 TH/s while pulling 1410 W, at the price of $673. These specs mean it has the best GH/W and GH/USD of currently sold miners until the Whatsminer or others come out, although its GH/USD of 11.6 already competes with Whatsminer's 10.5. Discussed on Reddit and bitcointalk, unboxing video here.
@matheusd started tests on testnet several months ago. I contacted him so we could integrate with the pool in June this year. We set up the machine in July and bought the first split ticket on mainnet, using the decredbrasil pool, on July 19. It was voted on July 30. After this first vote on mainnet, we opened the tests to selected users (with more technical background) on the pool. In August we opened the tests to everyone, and would call people who want to join to the #ticket_splitting channel, or to our own Slack (in Portuguese, so mostly Brazilian users). We have 28 split tickets already voted, and 16 are live. So little more than 40 split tickets total were bought on decredbrasil pool. (@girino in #pos-voting)
KuCoin exchange listed DCBTC and DCETH pairs. To celebrate their anniversary they had a 99% trading fees discount on DCR pairs for 2 weeks. Three more wallets integrated Decred in September:
Atomic desktop wallet added Decred in version 0.1.31. The team answered many questions on Reddit.
AnyBit wallet added Decred. It features built-in price and news tracking. Notably, the source code is open for their Android and iOS wallets.
Coboadded Decred support into their Android and iOS wallets.
ChangeNow announced Decred addition to their Android app that allows accountless swaps between 150+ assets. Coinbase launched informational asset pages for top 50 coins by market cap, including Decred. First the pages started showing in the Coinbase app for a small group of testers, and later the web price dashboard went live.
The birth of a Brazilian girl was registered on the Decred blockchain using OriginalMy, a blockchain proof of authenticity services provider. Read the full story in Portuguese and in English.
Advertising report for September is ready. Next month the graphics for all the ads will be changing.
Marketing might seem quiet right now, but a ton is actually going on behind the scenes to put the right foundation in place for the future. Discovery data are being analyzed to generate a positioning strategy, as well as a messaging hierarchy that can guide how to talk about Decred. This will all be agreed upon via consensus of the community in the work channels, and materials will be distributed. Next, work is being done to identify the right PR partner to help with media relations, media training, and coordination at events. While all of this is coming up to speed, we believe the website needs a refresher reflecting the soon to be agreed upon messaging, plus a more intuitive architecture to make it easier to navigate. (@Dustorf)
Raedah Group went on the streets of Portland, USA with a pretty blue tent. (photos)
Meetup at Binzantin Cafe in Taipei, Taiwan. @morphymore: "There were 20-ish attendees, and about half of them have joined the Chinese FB group. Most of them don't hear about Decred before, but have expressed the interest in learning more about it after the event. Overall, it's a good exposure for Decred in the Taiwan community.". A report with photos was posted on Facebook, more photos are here and here.
@joshuam made a Decred Jacket appearance at Singapore Grand Prix. (photos)
NewTech PDX meetup in Portland, USA. Raedah Group presented Decred and reported "lots of new converts". (photos)
North Shore Bitcoin & Blockchain in Glenview, USA. @dustorf gave a five minute overview of Decred and noted: "There were only about 25 people, but about 1/3 of them were aware of Decred prior. (...) Our simple presence and explanation of the project moved opinion from 'another shitcoin they sold after mining' to 'an interesting and viable project worthy of further investigation'.". (photos: 12)
Bitcoin Meetup CDMX in Mexico City on Oct 6. @elian will be talking about Decred at the oldest Bitcoin meetup in Mexico.
SF Blockchain Week in San Francisco, USA on Oct 9. @lukebp will discuss DPoS vs PoS on a panel 9:30a-10:15a at the Titans of Tech Stage, Hilton Union Square.
Decred Meetup in Casablanca, Morocco on Oct 27. @butterfly will host the event and talk about Decred in French.
Texas Bitcoin Conference Austin, USA on Oct 27-28. @BAB: "The great thing about this is that it will also be a Decred Summit. We will have half of the conference dedicated to Decred topics, updates, etc."
Websummit in Lisbon, Portugal on Nov 5-8. @moo31337 will be on a panel discussing "2018: A Rollercoaster Year for Cryptocurrencies"
We'll begin shortly reviewing conferences and events planned for the first half of 2019. Highlights are sure to include The North American Bitcoin Conference in Miami (Jan 16-18) and Consensus in NYC (May 14-16). If you have suggestions of events or conferences Decred should attend, please share them in #event_planning. In 2019, we would like to expand our presence in Europe, Asia, and South America, and we're looking for community members to help identify and staff those events. (@Dustorf)
August issue of Decred Journal was translated to Russian. Many thanks to @DZ! Rency cryptocurrency ratings published a report on Decred and incorporated a lot of feedback from the community on Reddit. September issue of Chinese CCID ratings was published (snapshot), Decred is still at the bottom. Videos:
The underbelly of blockchain Governance - fiat licensing and our code with Marco Peerboom and Chris DeRose (youtube, tweet, decred, missed in August issue) Insightful dialogue about men's underwear, licenses, subtleties of GPL, BSD wars, tiling window managers and much more.
Introduction to Decred (Korean, youtube) @Killawhale collected a lot of feedback from the community and produced this video to spread the word in Korea.
Perspectives on Governance from Nathan Wilcox, Jonathan Zeppettini, Vitalik Buterin (z.cash)
Decred - an example of governance (Portuguese, youtube)
Decred, the crypto that wants to compete with Bitcoin (French, youtube)
Exodus.io Live with Marco from Decred! (youtube) Marco joins Exodus.io to discuss what makes DCR an asset that will stand the test of time.
Building Decred With Systems Development Lead Marco Peereboom - Governance, Politeia, Lightning (youtube) Topics: early days, Politeia, the structure of Decred, dcrtime, Lightning Network, attracting users and developers, future plans (DEX, Schnorr signatures, privacy, DAEs).
Decentralized autonomous funding of blockchain projects by @Richard-Red (medium, discussion on decred and dashpay)
The trouble with infrastructure, "thin" protocols in particular, is that someone has to build them at a cost. e.g. LN takes a ton of work, doesn't necessarily generate value itself, but it magnifies the value of BTC or whatever coin that uses it. I see the DEX in a similar light - whoever creates it is not going to make a bunch of money from it, but it will magnify the value of the underlying asset(s) that end up having a deep order book on the DEX. (@jy-p in #dex)
Twitter: why decentralized governance and funding are necessary for network survival and the power of controlling the narrative; learning about governance more broadly by watching its evolution in cryptocurrency space, importance of community consensus and communications infrastructure. Reddit: yet another strong pitch by @solar; question about buyer protections; dcrtime internals; a proposal to sponsor hoodies in the University of Cape Town; Lightning Network support for altcoins. Chats: skills to operate a stakepool; voting details: 2 of 3 votes can approve a block, what votes really approve are regular tx, etc; scriptless script atomic swaps using Schnorr adaptor signatures; dev dashboard, choosing work, people do best when working on what interests them most; opportunities for governments and enterprise for anchoring legal data to blockchain; terminology: DAO vs DAE; human-friendly payments, sharing xpub vs payment protocols; funding btcsuite development; Politeia vote types: approval vote, sentiment vote and a defund vote, also linking proposals and financial statements; algo trading and programming languages (yes, on #trading!); alternative implementation, C/C++/Go/Rust; HFTs, algo trading, fake volume and slippage; offline wallets, usb/write-only media/optical scanners vs auditing traffic between dcrd and dcrwallet; Proof of Activity did not inspire Decred but spurred Decred to get moving, Wikipedia page hurdles; how stakeholders could veto blocks; how many votes are needed to approve a proposal; why Decrediton uses Electron; CVE-2018-17144 and over-dependence on single Bitcoin implementation, btcsuite, fuzz testing; tracking proposal progress after voting and funding; why the wallet does not store the seed at all; power connectors, electricity, wiring and fire safety; reasonable spendings from project fund; ways to measure sync progress better than block height; using Politeia without email address; concurrency in Go, locks vs channels. #support is not often mentioned, but it must be noted that every day on this channel people get high quality support. (@bee: To my surprise, even those poor souls running Windows 10. My greatest respect to the support team!)
In September DCR was trading in the range of USD 34-45 / BTC 0.0054-0.0063. On Sep 6, DCR revisited the bottom of USD 34 / BTC 0.0054 when BTC quickly dropped from USD 7,300 to 6,400. On Sep 14, a small price rise coincided with both the start of KuCoin trading and hashrate spike to 104 PH/s. Looking at coinmarketcap charts, the trading volume is a bit lower than in July and August. As of Oct 4, Decred is #18 by the number of daily transactions with 3,200 tx, and #9 by the USD value of daily issuance with $230k. (source: onchainfx) Interesting observation by @ImacallyouJawdy: while we sit at 2018 price lows the amount locked in tickets is testing 2018 high.
ASIC for Lyra2REv2 was spotted on the web. Vertcoin team is preparing a new PoW algorithm. This would be the 3rd fork after two previous forks to change the algorithm in 2014 and 2015. A report titled The Positive Externalities of Bitcoin Mining discusses the benefits of PoW mining that are often overlooked by the critics of its energy use. A Brief Study of Cryptonetwork Forks by Alex Evans of Placeholder studies the behavior of users, developers and miners after the fork, and makes the cases that it is hard for child chains to attract users and developers from their parent chains. New research on private atomic swaps: the paper "Anonymous Atomic Swaps Using Homomorphic Hashing" attempts to break the public link between two transactions. (bitcointalk, decred) On Sep 18 Poloniex announced delisting of 8 more assets. That day they took a 12-80% dive showing their dependence on this one exchange. Circle introduced USDC markets on Poloniex: "USDC is a fully collateralized US dollar stablecoin using the ERC-20 standard that provides detailed financial and operational transparency, operates within the regulated framework of US money transmission laws, and is reinforced by established banking partners and auditors.". Coinbase announced new asset listing process and is accepting submissions on their listing portal. (decred) The New York State Office of the Attorney General posted a study of 13 exchanges that contains many insights. A critical vulnerability was discovered and fixed in Bitcoin Core. Few days later a full disclosure was posted revealing the severity of the bug. In a bitcointalk thread btcd was called 'amateur' despite not being vulnerable, and some Core developers voiced their concerns about multiple implementations. The Bitcoin Unlimited developer who found the bug shared his perspective in a blog post. Decred's vision so far is that more full node implementations is a strength, just like for any Internet protocol.
About This Issue
This is the 6th issue of Decred Journal. It is mirrored on GitHub, Medium and Reddit. Past issues are available here. Most information from third parties is relayed directly from source after a minimal sanity check. The authors of Decred Journal have no ability to verify all claims. Please beware of scams and do your own research. Feedback is appreciated: please comment on Reddit, GitHub or #writers_room on Matrix or Slack. Contributions are also welcome: some areas are adding content, pre-release review or translations to other languages. Credits (Slack names, alphabetical order): bee, Dustorf, jz, Haon, oregonisaac, raedah and Richard-Red.
Why is does it take so long to shut down an node used only as a JSON-RPC server?
I'm trying to sync a full node that will only be used as a JSON-RPC server (no mining). I tried to modify the config file and added a service unit, so that the node can run in a low-end VPS with minimum RAM and CPU capabilities. The problem is that the server takes too long to stop, and it's terminated by the system, so it always start rewinding blocks that have been already downloaded. Here is my configuration file:
server=1 daemon=1 #debug=mempool debug=rpc # If run on the test network instead of the real bitcoin network # testnet=1 # You must set rpcuser and rpcpassword to secure the JSON-RPC api # Please make rpcpassword to something secure, `5gKAgrJv8CQr2CGUhjVbBFLSj29HnE6YGXvfykHJzS3k` for example. # Listen for JSON-RPC connections on (default: 8332 or testnet: 18332) rpcuser=myuser rpcpassword=pypassword rpcport=8332 # Enable blocks pruning #prune=550 # Limit dbcache=50 maxconnections=4 rpcthreads=2
And the service unit:
# It is not recommended to modify this file in-place, because it will # be overwritten during package upgrades. If you want to add further # options or overwrite existing ones then use # $ systemctl edit bitcoind.service # See "man systemd.service" for details. # Note that almost all daemon options could be specified in # /etc/bitcoin/bitcoin.conf [Unit] Description=Bitcoin daemon After=network.target [Service] ExecStart=/usbin/bitcoind -daemon=0 -datadir=/home/jsonrpc/bitcoin -conf=/home/jsonrpc/bitcoin/settings.conf ExecStop=/usbin/bitcoin-cli -datadir=/home/jsonrpc/bitcoin -conf=/home/jsonrpc/bitcoin/settings.conf stop # Creates /run/bitcoind owned by bitcoin #RuntimeDirectory=/home/jsonrpc/bitcoin WorkingDirectory=/home/jsonrpc/bitcoin User=jsonrpc Group=jsonrpc TimeoutStopSec=15m #CPUQuota=4% #MemoryLimit=128M #IOReadIOPSMax=10 #IOWriteIOPSMax=10 Type=simple #Restart=on-failure # Hardening measures #################### # Provide a private /tmp and /vatmp. PrivateTmp=true # Mount /usr, /boot/ and /etc read-only for the process. ProtectSystem=full # Disallow the process and all of its children to gain # new privileges through execve(). NoNewPrivileges=true # Use a new /dev namespace only populated with API pseudo devices # such as /dev/null, /dev/zero and /dev/random. PrivateDevices=true # Deny the creation of writable and executable memory mappings. # Commented out as it's not supported on Debian 8 or Ubuntu 16.04 LTS #MemoryDenyWriteExecute=true [Install] WantedBy=multi-user.target
IRC Log from Ravencoin Open Developer Meeting - Sept 21, 2018
[14:04] Topics for the chat today: 1. Bitcoin double spend bug. 2. Max reorg depth changes. [14:04] I think that will take most of the hour. We'll then open it up for questions. [14:05] == blondfrogs changed the topic of #ravencoin-dev to: Topics for the chat today: 1. Bitcoin double spend bug. 2. Max reorg depth changes. [14:05] == wolfsokta changed the topic of #ravencoin-dev to: Bitcoin Bug/Max Reorg [14:05] Hi! I'm Forest... Forest Gump, do you want a ravencoin? [14:05] Hi all [14:05] == blondfrogs changed the topic of #ravencoin-dev to: Topics for the chat today: 1. Bitcoin double spend bug. 2. Max reorg depth changes. [14:05] Topic fight [14:05] as far as i know the double spending bug could inflate the bitcoin supply right? [14:05] like make more bitcoin that possible [14:05] than [14:06] is this correct? [14:06] it's more that the danger is crashing all the nodes [14:07] 1. Raven is also affected by the bitcoin bug. Which is what we want to discus. [14:08] blondfrogs can you tell us what you're planning to address the bug? [14:08] So, we have updated our codebase to have the bitcoin bug fix. This is going to be implemented in 188.8.131.52. We are currently making binaries and should have an annoucment by end of day today to the community. We are urging the community to update their wallets to 184.108.40.206 [14:09] ... [14:10] BTC patched it though. Wouldnt the "same" patch work for RVN? [14:10] Spot on! [14:10] No, it would not since we forked a while back. [14:10] Exactly. We patched it in the same way but we still need to get our wallets that contain the fix out so the community can upgrade [14:10] is there a todo somewhere to add auto-update functionality to the wallet? [14:11] So, we need to get the word out to get people to update. [14:11] YES [14:12] How does the patch affect future LN implementation? [14:12] Any changes that were made to bitcoin to get LN to integrate would need to be merged into Raven. [14:12] Any risks? [14:13] Fair comment. [14:13] We would love any developers that are interested in doing that work to jump in. [14:13] The fix is just changing a 'false' to 'true' to tell the node to scan for dup tx in the block. [14:14] So the auto update feature implementation is being discussed through OS stores, as a second option for wallet download ... @lsji07 [14:14] The comment in the Bitcoin code said it was slow to scan the transactions. So it will be a bit slower. [14:14] slower is better than being vulnerable [14:16] Agreed [14:16] lets talk about the maxreorg depth, people in the discord have been asking "why isnt it lower" what do you guys think [14:16] once we finish with the first one we will russk [14:16] k [14:16] no russk [14:16] lol [14:17] I saw it went back to 60. [14:17] 220.127.116.11 will be built and uploaded today. [14:18] Once the binaries are ready, Ill get it out to all of the social sites, exchanges, and pool operators [14:18] We changed the voting date for 18.104.22.168 [14:19] So it will not interfere with 2.1 release. [14:19] We would prefer that 2.0.4 and 22.214.171.124 assets do not activate as they're not 100% compatible with 2.1 assets. [14:19] == Zaaaab [[email protected]/web/cgi-irc/kiwiirc.com/ip.126.96.36.199] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client] [14:20] We also need the communities help to get people to upgrade to 188.8.131.52 [14:20] The protocol layer for assets changed just a bit. [14:20] Unique assets can be 31 chars instead of 30 [14:20] We saved a byte on asset creation by not encoding the IPFS length twide. [14:20] We saved a byte on asset creation by not encoding the IPFS length twice. [14:21] ipfs will be implemented natively later right? [14:21] YEs [14:21] I hope so. [14:21] awesome [14:21] So vulnerabilty patch first, then the asset layer. Same 31/10 date though for starting asset activation on 2.1 [14:21] It makes sense for us to integrate with IPFS when messaging is available. [14:22] Yes lsji07 [14:22] Until then, the IPFS hashes will be embedded and we'll "pin" the files so they stay around. [14:22] == HansSchmidt [[email protected]/web/cgi-irc/kiwiirc.com/ip.184.108.40.206] has joined #ravencoin-dev [14:22] == Hans_Schmidt [[email protected]/web/cgi-irc/kiwiirc.com/ip.220.127.116.11] has left #ravencoin-dev  [14:22] == corby_ [[email protected]/web/freenode/ip.18.104.22.168] has joined #ravencoin-dev [14:23] do you guys have anyone working on RSK yet? [14:23] hi [14:23] sup [14:23] Any other questions about 22.214.171.124? [14:23] @russk Thats a great question for the open QA at the end :) [14:23] K, let's cover the Max Re-Org depth changes. [14:24] No, but it can be implemented with RVN the same way as Bitcoin - as a side chain. [14:24] Tron posted an article that discusses the options that were discussed. [14:24] https://medium.com/@tronblack/ravencoin-building-the-immune-system-23d077b65f71 [14:24] Hope you all had a chance to read through it. [14:25] im still voting for the lake of fire method [14:25] I think the lake of fire was my favorite too. [14:25] Agreed [14:25] I'm with ya russk [14:25] I have sourced the lake part. [14:25] We found a burning pit in Utah, but no lake. [14:25] aw [14:26] Must try harder. [14:26] The code has moved to 60 blocks. [14:26] The reason for 55 was to have "buffer" [14:26] https://en.wikipedia.org/wiki/Darvaza_gas_crater [14:26] I would love to hear thoughts about the solution being proposed. [14:26] Buffer isn't needed if we get all the >= and the counts right. [14:27] Or questions/suggestions. [14:27] Exchanges don't go by time, but by confirmations. Confirmations are the block count, so if it can't re-org at 60, then 60 should be a safe level. [14:27] Plus 60 is easier to explain to people than 55 because the timing is in line with bitcoin. [14:27] It might be lower, but we opted for a more conservative number. [14:27] The downside risk is a chain split on an honest/honest split. [14:28] With years of data, we could look at all the chain splits and determine the probability of a long split. [14:29] For instance, a network cable between China and the rest of the world is cut, and then comes back on line later. [14:29] I think the code decision is sound. The only way a chain split would occur is splitting the hardware links around the world. Wartime scenario? [14:29] say if 50% of nodes upgrade to the new maxreorg client and someone tries to reorg the chain there will be a big split right? [14:30] Yes. [14:30] == Raven-Fam|21005 [[email protected]/web/cgi-irc/kiwiirc.com/ip.126.96.36.199] has joined #ravencoin-dev [14:30] Most exchanges today give access to bitcoin funds long before 6 confirmations, so you wouldn't expect exchanges to require 60 confirms either, correct? [14:30] Although that risk exists primarily between now and early Nov. After that, we hope 90%+ will be on the asset aware software. [14:31] which is why you all need to upgrade your wallets and vote for the correct chain and tell your friends. [14:31] got it, 2.1 will be the actual client for the hardfork, correct? [14:31] The exchanges are welcome to take on additional risk. The risk decreases as the hashpower goes up. [14:31] 2.1 is the planned version number. [14:32] also, say if i am still on 2.0.3-4 will i still be able to use assets after the hardfork? [14:32] how incompatible are the clients [14:32] At that point 2.0.3-4 clients would be on a different fork I believe. [14:34] any node with version < 2.1 will fork when assets are active. [14:34] Assets activate when 90% of the blocks are mined with 2.1+ [14:34] We'll work hard to ensure exchanges and pools have updated to 188.8.131.52 first and then to 2.1 when it's available. [14:34] awesome [14:35] But we want the community to help get the word out as well. Raven needs you! [14:35] We need a raven with a US Army hat guy to get people to update. [14:35] lol [14:36] Ill ping Pathfinder and get him on it. [14:36] Only you can help assure upgrades [14:36] Any other questions/comments/suggestions on Max Re-Org? [14:37] So just to be clear- the max reorg is included in 184.108.40.206 of not? [14:37] No, it is not. [14:37] Only the bitcoin bug fix is in 220.127.116.11 [14:38] Okay, open Q&A then! [14:38] Russk go! [14:38] lol [14:39] when are you guys going to implement native bech32? [14:39] Is there time to talk about asset_name token burning? There has been a proposal for RPC commands to let an asset_token owner burn them in order to clean out unwanted asset names and reduce UTXO. That appears to be easy and relatively uncontroversial. [14:39] also anyone working on RSK yet [14:40] Bech 32 was deprecated. [14:40] Honestly don't know much about it. [14:41] is the block size going to increase to 2mb when we fork? [14:41] russk tell me more. [14:41] I thought it was the new btc address format... [14:41] it is [14:41] it allows native segwit addresses [14:41] https://github.com/bitcoin/bips/blob/mastebip-0173.mediawiki [14:41] Ravencoin forked in the middle of implementation of segwit, it's planned to be added with Segwit. [14:41] Raven is already 2mb [14:41] really? [14:42] i thought it was 1mb [14:42] It's part of the vote coming up on Oct 31 [14:42] ah ok [14:42] It's in there, but BIP9 has to activate first. [14:42] Yes. We've also tested that it is possible to fill a 2MB block [14:42] Or rather BIP9 voting will activate RIP2 which will increase the block size. [14:43] https://i.imgflip.com/2igmj7.jpg [14:43] do you guys have a timeframe of when segwit is being fully added? [14:43] I want you. Nice one. [14:44] and for when they have done it, you can use https://i.imgflip.com/2igmml.jpg [14:44] lol [14:44] Wow, we have a meme master in the community! [14:44] @HansSchmidt any new code would be appreciated, if you have the ability to code the rpc called please submit an PR to the repo [14:44] I can't even open Photoshop that fast [14:45] We are talking about adding anti-spam features into the wallet. [14:45] Basically, if somebody sends an asset to an address that has been already used it could be an unwanted asset. [14:45] == vap0r-XMR [[email protected]/web/cgi-irc/kiwiirc.com/ip.18.104.22.168] has joined #ravencoin-dev [14:46] One more meme from the master: ttps://i.imgflip.com/2igmtd.jpg [14:46] https://i.imgflip.com/2igmtd.jpg [14:46] == Raven-Fam|1781 [[email protected]/web/freenode/ip.22.214.171.124] has joined #ravencoin-dev [14:46] Understood. I'll look at it, but I'm more python than C [14:47] == SweetAndLow [~[email protected]] has joined #ravencoin-dev [14:47] Perfect [14:47] That would still be great Hans. [14:47] im looking into implementing RSK [14:48] @HansSchmidt You don't need C [14:48] it doesnt look crazy hard, just some java stuff [14:48] == Zaaaab [[email protected]/web/cgi-irc/kiwiirc.com/ip.126.96.36.199] has joined #ravencoin-dev [14:48] c++ [14:48] more like c-- [14:49] == Raven-Fam|21005 [[email protected]/web/cgi-irc/kiwiirc.com/ip.188.8.131.52] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client] [14:49] when ravencoin client coded in assembly [14:49] == Zaaaab [[email protected]/web/cgi-irc/kiwiirc.com/ip.184.108.40.206] has quit [Client Quit] [14:49] I was referring to @blondfrog new RPCs [14:49] == Zaaaab [[email protected]/web/cgi-irc/kiwiirc.com/ip.220.127.116.11] has joined #ravencoin-dev [14:49] I'd like to help with RSK [14:49] We would love you to help! [14:50] if you know java you can probably do it @vap0r [14:50] https://github.com/rsksmart [14:50] fork rskj and bitcoinj [14:50] Thanks [14:51] RSK would be extremely useful for bond-like implementations [14:51] assets would probably mess RSK up tho [14:51] Im off now thanks for the hard work guys! [14:52] It might be a fun merge for sure. [14:52] Thanks for joining! [14:52] == AlsoSushi [[email protected]/web/cgi-irc/kiwiirc.com/ip.18.104.22.168] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client] [14:52] the bitcoinj client doesnt look crazy hard to port over to ravencoin [14:52] == lsji07 [~[email protected]] has quit [Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )] [14:52] you would just need to change the diff algo to DGW and make an x16r java implementation [14:53] It shouldn't be too hard. [14:53] Which channel can I disclose a vulnerability? [14:53] is it the bitcoin double spend vulnerability? [14:53] or something new [14:53] DM Chatturga on discord. [14:53] == dudeman [[email protected]/web/cgi-irc/kiwiirc.com/ip.22.214.171.124] has joined #ravencoin-dev [14:53] No, on Testnet [14:53] ahh ok yea dm chatturga [14:54] Either way, you can send it to me and I can make surfe it gets where it needs to go. [14:54] sure* [14:54] Do you have a suggested fix? [14:54] Not currently, need more time [14:55] Just give Chatturga a ping, and we can talk about it [14:55] Thank you vap0r! [14:55] i am extremely curious to see what this vulnerability is [14:55] Does not impact supply [14:56] assets related? [14:56] On second thought vap0r just share it here if you don't mind. [14:56] this is testnet so its meant to be bug tested [14:57] If it's a testnet only bug then please feel free to share. [14:58] We're now on pins and needles vap0r. [14:58] :) [14:59] Any other questions while we wait? [14:59] Or another meme? ;) [15:00] Do you all like these open developer meetings? [15:00] == Mixed [[email protected]/web/freenode/ip.126.96.36.199] has joined #ravencoin-dev [15:00] yea they are nice [15:00] no [15:00] lol [15:00] hahaha!!! to bad blondy [15:00] if they were on discord it would be nicer [15:01] == vap0r-XMR [[email protected]/web/cgi-irc/kiwiirc.com/ip.188.8.131.52] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client] [15:01] lol [15:01] there he goes [15:01] Vap0r left... [15:01] +1 on Discord [15:01] Is anyone using testnet6 yet? I built develop2 branch to get 2.0.6 to play with, but had to modify it back to testnet5 in order to be useful. Even on testnet5 there has been only one person sometimes cpu mining. [15:01] Is anyone using testnet6 yet? I built develop2 branch to get 2.0.6 to play with, but had to modify it back to testnet5 in order to be useful. Even on testnet5 there has been only one person sometimes cpu mining. [15:01] Is anyone using testnet6 yet? I built develop2 branch to get 2.0.6 to play with, but had to modify it back to testnet5 in order to be useful. [15:01] We're setting up seed nodes for testnet6. [15:02] Seed nodes are being updated. [15:02] wierd echo... [15:02] Love that you're pulling the code Hans! [15:02] im not on testnetv6 yet, i could compile the binaries and then we could play around @hans [15:02] We expect testnet6 consensus rules to be the final ones. [15:03] when are we getting testnetv20? [15:03] lol [15:03] We're working on it russk [15:03] cant wait [15:04] how can I find the seed nodes? they're added into the code updates? [15:04] == Spyder [[email protected]/web/freenode/ip.184.108.40.206] has quit [Quit: Page closed] [15:04] We're done, thanks everybody. [15:04] russk -- 14 mistakes from now. [15:04] Roshii is done. :) [15:04] Did I see a request for one more meme? [15:04] https://i.imgflip.com/2igof3.jpg [15:04] one last question, when moon? [15:04] == Zaaaab [[email protected]/web/cgi-irc/kiwiirc.com/ip.220.127.116.11] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client] [15:05] lol @chatt [15:05] == Mixed [[email protected]/web/freenode/ip.18.104.22.168] has quit [Ping timeout: 256 seconds] [15:05] == Sat_Roshii [adf19[email protected]/web/freenode/ip.22.214.171.124] has quit [Quit: Page closed] [15:05] Seed nodes are behind 3 DNS entries [15:05] Thanks all. Tron out. [15:05] == Tron_ [[email protected]/web/freenode/ip.126.96.36.199] has quit [Quit: Page closed] [15:05] Peace [15:06] == blondfrogs [[email protected]/web/freenode/ip.188.8.131.52] has quit [Quit: Page closed] [15:06] == Raven-Fam|1781 [[email protected]/web/freenode/ip.184.108.40.206] has quit [Quit: Page closed] [15:06] Peace [15:06] == HansSchmidt [[email protected]/web/cgi-irc/kiwiirc.com/ip.220.127.116.11] has left #ravencoin-dev  [15:06] 3 domains Ravencoin.org, Ravencoin.com, bitactivate.com [15:06] 4 dns entries per domain so a total of 12 nodes. [15:07] Alright, everybody left me. Thanks all for joining this week! [15:07] I'll never let go, Wolf [15:07] I think we'll try discord two weeks from now. [15:07] good shit guys, keep up the good work [15:08] Thank you all! We have the best community! [15:08] And definitely the best Memes! [15:08] == Zaaaab [[email protected]/web/cgi-irc/kiwiirc.com/ip.18.104.22.168] has joined #ravencoin-dev [15:09] Have a great weekend.
The port forwarding settings should allow you to map an external port on your router to the “internal port” of a device on your network as shown in the screenshot below. Both the external port and the internal port should be 8333 for Bitcoin. (You may also want to map port 18333 for Bitcoin’s testnet, although this guide does not cover ... using the same JSON-RPC default port for both testnet and regtest prevents running both at the same time on the same machine. Since RPCport=P2Pport-1 for both mainnet and testnet, and regtest P2Pport being 18444, 18443 is proposed for regtest RPCport Documentation has been updated (or created where missing); manpages doc/man/bitcoin*.1 could include information for regtest too BETA: This documentation has not been extensively reviewed by Bitcoin experts and so likely contains numerous errors. Please use the Issue and Edit links on the bottom left menu to help us improve. Click here to close this disclaimer. X The following guide aims to provide examples to help you startbuilding Bitcoin-bas . trending; Bitcoind Testnet Bitcoin . Bitcoind Testnet . Mar 29, 2018 DTN ... Testnet vs Testnet2 . Default Bitcoin network protocol listen port is 18333 (instead of 8333) Default RPC connection port is 18332 (instead of 8332) Bootstrapping uses different DNS seeds. A different value of ADDRESSVERSION field ensures no testnet Bitcoin addresses will work on the production network. (0x6F rather than 0x00) Default RPC connection port is 18332 (instead of 8332) Bootstrapping uses different DNS seeds. A different value of ADDRESSVERSION field ensures no testnet Bitcoin addresses will work on the production network. (0x6F rather than 0x00) The protocol message header bytes are 0x0B110907 (instead of 0xF9BEB4D9) Minimum difficulty of 1.0 on testnet is equal to difficulty of 0.5 on mainnet. This ...
Bitcoin JSON-RPC tutorial. Set up your bitcoin.conf file and create custom settings with bitcoind. BTC: 1NPrfWgJfkANmd1jt88A141PjhiarT8d9U Bitcoin JSON-RPC tutorial. How to set up bitcoind on a VPS. BTC: 1NPrfWgJfkANmd1jt88A141PjhiarT8d9U Bitcoin JSON-RPC Tutorial 3 - bitcoin.conf - Duration: 8:10. m1xolyd1an Recommended for you. 8:10. ... How To Use Bitcoin Testnet - Getting Free Testcoins - Duration: 3:09. Bitcoin Tutorials ... Bitcoin JSON-RPC Tutorial 5 - Your First Calls - Duration: 10:06. m1xolyd1an 11,838 views. 10:06 . Building a Blockchain in Under 15 Minutes - Programmer explains - Duration: 14:28. Ivan on Tech ... An introduction to the Bitcoin JSON-RPC tutorial series. BTC: 1NPrfWgJfkANmd1jt88A141PjhiarT8d9U