Decred Journal — May 2021

Latest release of our flagship GUI wallet Decrediton fixes issues with VSP staking, makes the wallet “cooler” with granular unlocking of accounts, and adds experimental integration of the new DCRDEX release.

Decred Journal — May 2021
Qubism Ascend by @saender
Qubism Ascend by @saender

Highlights for May:

  • The new Treasury system is actively receiving block rewards and has already been tested with the first of the new tspend transactions being approved and mined.
  • Version 1.6.3 of node and wallet software was released to patch some issues with VSP staking and add some of the latest features.
  • DCRDEX v0.2.0 was released, incorporating more than 3 months work, and an experimental DCRDEX integration has been added to Decrediton v1.6.3.

Contents:

· v1.6.3 Patch Release
· New Treasury Activated
· Development
· People
· Governance
· Network
· Ecosystem
· Outreach
· Media
· Discussions
· Markets
· Relevant External
· About

v1.6.3 Patch Release

Latest release of our flagship GUI wallet Decrediton fixes issues with VSP staking, makes the wallet “cooler” with granular unlocking of accounts, and adds experimental integration of the new DCRDEX release. Command-line dcrwallet is updated as well with VSP staking fixes and improvements.

Decrediton users please be aware:

  • the DEX tab is only shown in full mode and is hidden in SPV mode
  • you need to run Bitcoin Core and have it fully synced to use the DEX tab
  • Windows download was updated to fix default Bitcoin directory bug, if you got the installer before May 25 please download again and reinstall

See the full release notes and downloads here. As always, respect the signature verification ritual to ensure you run unmodified binaries.

New Treasury Activated

The new consensus rules activated on May 8. Starting with block 552,448, 10% of the block rewards are flowing to the new Treasury account and are no longer flowing to the legacy address.

The key difference is that the new Treasury account is controlled by Decred stakeholders. Spending from the legacy address only required a transaction signed by Decred Holdings Group LLC (“DHG”), a conventional corporate entity created to bootstrap Decred. Spending from the new account is only possible if stakeholders vote to approve a special “treasury spend” transaction (“tspend”).

A sophisticated voting process to support it was specified in Decred Change Proposal 6 and implemented in software release v1.6. In simple terms, the key steps are:

  • Politeia admins create a tspend transaction conforming to certain requirements (not spending too much money, with not too long expiration time, signed by one of the two keys allowed by consensus, etc)
  • the transaction is published to the mempool and voting wallets start voting on it
  • the vote runs for up to 12 days but can “short-circuit” in as early as ~7 days if the outcome becomes unchangeable by any remaining votes
  • up to 17,280 tickets that are called to vote during this period may cast tspend votes (along with normal block approval and consensus upgrade votes)
  • if the vote passes, the transaction is included in a block (up to 1 day later) and the contractors are paid

The new Treasury system was successfully tested on mainnet quickly after the activation. On May 10 the stakeholders were notified to configure their voting wallets. Then on May 12, a small test tspend transaction was broadcast to the network. The nearest voting window was May 13–24, but the vote “short-circuited” after accumulating 6,755 Yes and 1 No vote over 9 days. Out of 12,550 tickets that had a chance to vote in that period, 54% actively voted. The tspend was mined in block 556,416.

As of software release v1.6.3, tspend voting is only supported for “solo voters” who run voting wallets 24/7 (~77% of all stakeholders as of Jun 1). Work is underway to enable this for VSP voters.

Treasury spend voting will become an important monthly process to pay the people building Decred. Solo voters are advised to prepare for upcoming tspend votes by configuring their voting wallets with the following command:

dcrctl --wallet settreasurypolicy "03f6e7041f1cf51ee10e0a01cd2b0385ce3cd9debaabb2296f7e9dee9329da946c" "yes or no"

This command expresses your trust to the current Treasury management and its key 03f6e704..., and sets how your wallet will vote for tspends signed by it. You can verify this key in the DCP-0006 or in the source code. The voting is semi-automated with this one-time configuration, but it is possible to vote on individual tspend transactions when more granular control is needed.

Congratulations to all stakeholders with this milestone and thanks to all contributors making it a reality!

Development

The work reported below has the “merged to master” status unless noted otherwise. It means that the work is completed, reviewed, and integrated into the source code that advanced users can build and run, but is not yet available in release binaries for regular users.

dcrd

  • moved code for handling signing standard scripts to its own subpackage in order to prepare for future splitting of standard script handling from consensus critical code
  • updated OpenBSD rc script for 6.9 features
  • reworked application version handling to parse it from a single string, which is easier to manage and is more error-proof
  • perform a graceful shutdown when the SIGHUP signal is received
  • added script version to the result of the gettxout RPC. The script version is going to become more important in the future when a new version is introduced.
  • flush block database to disk before UTXO database to ensure the latter can be recovered after an unclean shutdown
  • reworked UTXO related logic for better separation of concerns. This makes the flow easier to follow and paves the way for optimizing the UTXO database.

dcrwallet

Merged in master and v1.6.3 release:

  • improved heuristic for creating additional split transactions to fix more insufficient balance errors when buying tickets
  • fixed input selection when paying VSP fees, resolving two bugs: one where the intended inputs were not being used and could remain locked, and another where VSP fee could be paid out of the wrong account, possibly degrading the privacy of mixing wallets
  • ensure intended wallet accounts are used for paying VSP fee and receiving change when syncing failed VSP tickets
  • multiple fixes for tracking VSP-managed tickets regarding fee payment scheduling, error handling, revocations, and expired fee transactions
  • ensure there are no duplicate fee payments and that all are tracked by the VSP client
  • perform a graceful shutdown when the SIGHUP signal is received
  • added a new gRPC endpoint that exposes tickets and fees tracked by the VSP client (used by Decrediton)

Merged in master:

  • implemented gettxout method returning information about an unspent transaction output, which is required for DCRDEX to operate a DCR wallet in SPV mode
  • implemented methods to obtain cfilters (compact block filters) and the best block. These are similar to dcrd’s implementations and also enable DCRDEX to manage DCR in SPV mode.

Decrediton

Merged in master and v1.6.3 release:

  • allow to send funds between accounts in privacy wallets (except into the mixed account)
  • only show the “Process Managed Tickets” view when it is needed
  • fixed blank page being shown on startup instead of a loading bar
  • fixed incorrect passphrase allowing to skip account security migration
  • fixed wallet account locking to prevent the locking of accounts where VSP tickets are being processed, but to also lock any accounts that no longer need to be unlocked
  • consistently use Lodash for type checking
  • fixed unmixed and change accounts not being unlocked when the ticket autobuyer is in privacy mode
  • fixed default Bitcoin directory on Windows

Merged in master:

  • fixed handling of zero “Balance to Maintain” value
  • introduced preload script and converted some comms between the main and renderer processes to a more robust approach using invoke/handle. This is a first step towards isolating all Node-related calls so that Node integration can be turned off for the main UI code.

Politeia

Most of the work has been dedicated to updating UI code, testing, and fixing bugs after the massive upgrade to the new storage backend and the new API.

  • updated About Politeia copy
  • put proposal token into email notification subject
  • consistently handle short proposal tokens across the UI codebase
  • fixed multiple comment-related UI bugs
  • fixed flickering during initial UI loading
  • ~2 other backend and ~14 UI bug fixes
  • fixed unit and end-to-end tests to work with the new backend API
  • dependency upgrades, code cleanup, API enhancement

Contractor Management System (CMS):

  • changed invoice peer review visibility from based on author’s domain to based on invoice’s line-item domain. This will allow contractors to review all billed work in their domain even if it is coming from contractors in other domains. The current domains are Development, Research, Design, and Marketing.
  • added more email notifications: “Timely submission of invoices will be much more important once the payout from the treasury is fully automated, so further nagging is due.”
  • docs update and code cleanup
  • ~4 backend and ~1 UI bug fixes

Politeia v1.0.1 has been released including all the above backend fixes and improvements.

Progress towards v1.1.0 can now be tracked on the Milestones page.

vspd

  • added block explorer links for ticket and fee transactions to the UI
  • added best block height to status response (useful for detecting stalled VSPs)
  • populate ticket purchase height for all confirmed tickets and show it on the admin page
  • improved admin page aesthetics
  • added a framework for database upgrades
  • improved logging when recovering from request handling failures
  • added config params for max log size and max log files to keep
  • remove confirmed fee transactions from the database, cutting disk usage by ~2x
  • store each ticket in its own DB bucket. Combined with the previous optimization, it allows to trade ~40% higher disk usage for ~50% faster insertion and ~85% faster iterating over tickets.

dcrstakepool

  • fixed incompatibility between dcrstakepool (legacy VSP software) and dcrwallet v1.6.3 in some rare configurations

dcrpool

  • do not try to run with database version newer than expected
  • handle SIGTERM and SIGHUP shutdown signals
  • fixed chain notifications getting blocked by payment processing and added a workaround for dcrwallet’s reorg handling bug

Third v1.2.0 release candidate fixed issues discovered since RC2, but coinbase confirmation failures remain unresolved. The release is postponed till further notice while the team is exploring solutions.

DCRDEX

DCRDEX v0.2.0 has been released! It incorporates more than 3 months of work since the v0.1.5 release. The most notable changes are:

  • UI and usability enhancements including responsive design and interactive depth chart
  • support for client control by Decrediton and use of its accounts
  • account import/export
  • experimental Bitcoin Cash (BCH) support

Check Important Notices and the full list of changes in the release notes. The DEX page guides through simplified installation steps. More advanced users can get the binaries here and install them manually. Don’t forget to verify the downloads to ensure they came unmodified.

Merged in master:

  • initial server-side Ethereum asset support
  • disallow changing to a wallet that cannot settle user’s active trades
  • fixed an elusive and long-standing issue with updating score for offline users
  • updated to latest dcrd and dcrwallet packages

A lot of exciting work towards the 0.3 milestone is in progress, most notably Ethereum and SPV.

dcrandroid

  • disallow sending from unmixed accounts
  • added password input delays to resist brute-force attacks
  • show staking-related transactions on the Overview page
  • updated dependencies and replaced usages of “CoinShuffle++” with “StakeShuffle”
  • keep the display on until the mixing is completed or canceled
  • show rich text formatting for Politeia proposals (without using WebView)
  • updated Chinese and French translations
  • fixed watch-only wallet being listed as a source when sending funds

Merged in dcrlibwallet shared library:

  • added code for fetching proposal description and switched from saving proposal files to loading them on demand
  • integrated a signed TLS certificate for cspp.decred.org which is required when using mainnet
  • fixed bugs with balance and Politeia integration

dcrios

  • implemented Privacy mode with guided setup of the mixer
  • show USD equivalent of wallet’s DCR balance on the Overview page
  • added password input delays to resist brute-force attacks
  • when there is more than one wallet on the Overview page, show which walletthe transactions belong to
  • show more specific notifications for staking transactions (ticket voted or revoked)
  • show rich text formatting for Politeia proposals (without using UIWebView)
  • fixed incorrect list of accounts to send from
  • added support for iOS 11
  • ~17 bug fixes and UI tweaks

godcr

Elias Naur (creator of the Gio library that powers godcr) has kindly reviewed the UI code and shared his recommendations. Issues were created to address them, and some are already completed (e.g. #409, #411, #416).

dcrdata

  • initial version of the new /treasury page
  • show treasury spend transactions on the mempool page, tspend Yes/No votes on the ticket vote transaction page, and vote tally on tspend’s own transaction page
  • added a simpler endpoint to query exchange rates
  • added the share of mixed coins to the homepage (under Distribution)

docs

  • removed inline HTML for images — a step towards packaging all docs as a single PDF file
  • several updates regarding vspd staking

decred.org

Other:

  • Bug Bounty Program update: a total of 180 submissions processed so far, with 16 of them being eligible for a payout
  • a lightweight Jekyll theme config was extracted into its own repo for reuse. It allows to publish a few Markdown pages without third party tracking scripts. You can see it in action on mini-websites for events, proposals and social-media-stats projects.
  • translations require continuous maintenance. Join the #translations chat room to coordinate with the other translators and developers.

People

Welcome to new first time contributors with code merged to master: @LasTshaMAN (politeia)!

Community stats as of Jun 1:

  • Twitter followers: 45,724 (+1,333)
  • Reddit subscribers: 11,190 (+203)
  • Matrix #general users: 467 (+33)
  • Discord users: 1,787 (+221)
  • Telegram users: 2,705 (+60)
  • YouTube subscribers: 4,540 (+40), views: 186K (+4K)
  • GitHub dcrd stars: 598 (+7), forks: 255 (+1)

May’s recap of interesting social media dynamics is out, now with tables for easier reading. Feedback is appreciated to understand how valuable these reports are.

All-time community growth charts have been tweaked, updated, and moved to a new location here.

Governance

In May Decred Treasury received 11,342 DCR (2,564 to the old address, and 8,778 to the new system) worth $1.97M at May’s average rate of $173.47. No DCR was spent in May. On Jun 2, 698 DCR was spent from the legacy address for April invoices, worth $121K at May’s rate, or $139K at April’s billing rate of $198.60. As of Jun 3, combined Treasury balance is 683,438 DCR (107 million USD at $156).

May saw 1 proposal submitted and approved, the proposal for continued development of Politeia (detailed last month) had 98.4% approval and turnout of 44%.

Treasury charts have been added on checkonchain.com to assist with governance decisions around expenses.

Network

Hashrate: May’s hashrate opened at ~418 Ph/s and closed ~351 Ph/s, bottoming at 234 Ph/s and peaking at 497 Ph/s throughout the month.

There appears to be a correlation between the Dec-Apr price rally from ~25 to ~200 USD and the hashrate rise from ~350 to 450–550 Ph/s. Then in the opposite direction, Apr 17–23 price correction happened along hashrate drop from ~450 to ~250 Ph/s. Most recently, May 10–23 hashrate decline correlated with price drop from ~200 to ~110 USD.

Distribution of hashrate reported by the pools on Jun 1: Poolin 39%, F2Pool 17%, Antpool 3%, BTC.com 1.6%, Luxor 1.3%, Huobipool 0.4%, UUPool 0.1%, Coinmine 0.05%, okex 0.01%, others 38%.

Distribution of 1,000 actually mined blocks almost matches the reported hashrate. Unidentified mined blocks are split between 4 addresses: Dsacz 25%, DsR4G 7%, DsbNN 4%, and DsaWD 0.2%.

Staking: Ticket price varied between 173–198 DCR, with 30-day average at 183.7 DCR (-2.1).

The locked amount was 7.39–7.62 million DCR, meaning that 57.2–58.7% of the circulating supply participated in proof-of-stake.

VSP: On Jun 1, 8.2K (+1.1K) live tickets were managed by vspd servers and 1.1K (-1.1K) by the still listed legacy dcrstakepool servers. Collectively the 12 legacy and 13 new VSPs managed 22.5% of the ticket pool. The recently delisted but still active legacy VSPs managed 61 live tickets.

On May 14 it was discovered that 4 legacy VSPs have not upgraded to the new consensus rules and got forked off the network on May 8, while holding ~350 tickets of their clients. All but one have eventually upgraded to continue serving their tickets, while stakepool.dcrstats.com changed to maintenance mode and stopped reporting the stats. The status of its 77 live tickets is unknown as of Jun 8.

Nodes: Throughout May there were around 215 reachable nodes according to dcrextdata.

Node versions as of Jun 1 snapshot (252 total, dcrd only): v1.6.2–42%, v1.6.0–21%, v1.6.1–17%, v1.7 dev builds — 8%, v1.6 dev builds 4%, v1.5.2–3%, v1.5.1–2.7%, v1.5.0–0.8%.

Ecosystem

Welcome the new vspd instance 123.dcr.rocks from @thefrankbraun. Service fee is 0.49% and voting wallets are located in 3 data centers on 2 continents. Since it was listed on May 1, the service has already voted ~430 tickets and manages ~650 live tickets as of Jun 8.

Legacy VSP dcrpool.dittrex.com was removed from the listing but is still online watching its last 1 live ticket. The service has voted 800+ tickets since Nov 2018. The replacement vspd instance from Dittrex is up, waiting its first voted ticket to get added to the list.

Not all exchanges handled Decred’s 6th consensus upgrade smoothly:

  • Binance has upgraded in advance and was not affected by the fork when it happened
  • Bittrex got stuck at block 552,447 — last block adhering to the old consensus rules. Their status page reported that DCR wallet was disabled and under “Wallet Maintenance”, which changed to “Normal” on around May 13.
  • Poloniex tweeted that their DCR wallet was disabled for “maintenance” (~4 hours after the consensus upgrade), and tweeted again on May 21 that it was re-enabled

Since around May 17, Ledger Live users have been reporting issues with syncing and sending their DCR. Last update on Ledger’s incident page says the fix was being tested on May 20, but their Jun 3 tweet confirms the issue is still unresolved. As of Jun 8, the status page reports an outage for DCR and a 75% uptime over the past 90 days.

The following services have been removed from decred.org:

MarketplaceGOLD has compiled a list of merchants accepting DCR globally and announced it on r/decred.

Warning: the authors of the Decred Journal have no idea about the trustworthiness of any of the services above. Please do your own research before trusting your personal information or assets to any entity.

Join our #services chat to follow Decred ecosystem updates.

Outreach

Monde PR’s achievements for May:

  • pitched 2 stories to finance and crypto publications
  • responded to 12 requests for comments/PR opportunities
  • secured 2 media interviews

News coverage secured by Monde PR:

Media

Selected articles:

  • Big Tech on steroids: why the 2020s will be the “decade of the DAO” by Dominic Frisby (MoneyWeek)
  • Thinking Out Loud #2: Decred charting spree by @PermabullNino (substack.com)

Videos:

  • Finite coin supply — Decred Fundamentals by @phoenixgreen (youtube)
  • Why is governance important — Decred Fundamentals by @phoenixgreen (youtube)
  • Decred News Update — $150M stakeholder-driven DAO now live, DCRDEX coming to wallet, v1.6.2 & more by @Exitus (youtube)
  • Why this will be the decade of the DAO — Big Tech on steroids by Dominic Frisby (youtube)
  • Decred 2021: DCR coin (Decred explained) by Layah Heilpern of Exodus (youtube)
  • Decred Price Analysis — 26th May 2021 by Josh Olszewicz of Brave New Coin (youtube)
  • Talking Decred with Jake Yocom-Piatt by Dominic Frisby (youtube) — @jy-p hinted at upgrading the mixing tech with post-quantum crypto

Art and fun:

Translations:

  • Decred Journal April 2021 was translated to Arabic (@arij, @abdulrahman4) and Chinese (@Dominic). Thank you all!

Other non-English content:

  • Decred’s new Treasury covered by CriptoNoticias
  • looks like @Dominic secretly runs a new Decred podcast in Chinese with 3 episodes already out: first with an anon hardware engineer about events in the community, second on governance with decreder, and third with Mable Jiang of 51% Podcast (where @Dominic was a guest recently)

Discussions

Selected Reddit threads:

Selected Twitter discussions:

  • a long debate between @lukebp and @BuckPerley on formal vs informal governance
The Decred DAO has achieved a new milestone for the entire crypto space: A Digital Sovereign Wealth Fund.

The Decred network is the closest thing to a Digital Nation state.

A Layer 1 DAO with its own treasury, its own exchange, its own currency, and its own wallet. (@ammarooni)
And its own cakes!

Markets

In May DCR was trading between USD 90.4–229.4 / BTC 0.0027–0.0047. The average daily rate was $173.47.

@PermabullNino posted a “charting spree” with lots of metrics unique to Decred and succint commentary. USD 40 and BTC 0.004 seem to be important levels for many miners and stakers.

@PermabullNino’s non-Decred series “Permabullish Banter” reports that the stablecoin printer is in full “brr” mode, and some insights on USDC.

@Checkmate has updated checkonchain.com with new charts tracking Decred Treasury and DCRDEX trading volume.

DCRDEX has traded 383K DCR and 1.4K BTC in May, averaging to 12K DCR and 46 BTC daily trading volume.

Relevant External

Signalling for Taproot activation on Bitcoin has hit a level exceeding 90% (as of early Jun at ~97%) and is set to be locked in some time in June when the current signalling window ends.

Iran’s Central Bank has reportedly banned trading of cryptocurrency which is “mined abroad”, in an effort to stop capital flight. Iranian businesses are still permitted to obtain cryptocurrency from registered Iranian miners, for use in international payments.

Bitcoin mining pool Marathon Mining has mined a block which it describes as “fully compliant with U.S. regulations”, having censored transactions from entities it believes are sanctioned by the US Department of Treasury or have been involved in dark web activity. Despite their efforts some darknet market transactions made it into this block which was intended as a milestone for Bitcoin censorship.

After Elon Musk criticized Bitcoin’s environmental characteristics and Tesla stopped accepting it as payment, he joined with Michael Saylor and others to promote a new “Bitcoin Mining Council to promote energy usage transparency and accelerate sustainability initiatives worldwide”.

Ark’s Cathie Wood also remarked at Consensus that ESG (Environmental Social and Governance) concerns with Bitcoin meant “A lot of institutional buying went on pause”, crediting Elon Musk with a role in this movement.

The PoolTogether DAO, associated with the Pool Together lottery and controlling over 50% of all POOL tokens, has voted to diversify the holdings by selling 5.38% of all POOL tokens, currently controlled by the DAO, to a selection of VCs for the agreed sum of 7 million USDC. The POOL tokens bought by the VCs will have a lock-up period of 1 year, vesting over a 1 year period following that.

This is part of an apparent recent trend for DAOs to diversify their holdings.

May’s big Ethereum flash loan fail victim was xToken, where an attacker exploited bugs in two different contracts within the same transaction, netting a profit of $24.5 million after paying a $21,900 transaction fee to obtain the flash loan.

Binance Smart Chain is now providing competition for Ethereum in the DeFi dumpster fire stakes, after BUNNY tokens were hit for a notional $200 million in misprinted tokens following an economic exploit with, you guessed it, flash loans.

Coinbase is expanding its remit to also become a media company, going direct to their audience with “fact check” type content that is approved by its marketing department.

That’s all for May. Share your stories for the next issue in our declassified #journal chat.

About

This is issue 38 of Decred Journal. Index of all issues, mirrors, and translations is available here.

Most information from third parties is relayed directly from source after a minimal sanity check. The authors of the Decred Journal have no ability to verify all claims. Please beware of scams and do your own research.

Credits (alphabetical order):

  • writing and editing: bee, degeri, l1ndseymm, richardred
  • reviews and feedback: chappjc, davecgh, dnldd, jholdstock, karamble, lukebp, matheusd, oshorefueled
  • title image: saender
  • funding: Decred stakeholders