Decred Journal — September 2021

dcrd is a full node implementation that powers Decred’s peer-to-peer network around the world.

Decred Journal — September 2021
Fourier’s Square by @saender
Fourier’s Square by @saender

September’s highlights:

  • Work on the DCP-8 and DCP-9 consensus changes has been completed, they are ready to be introduced for an on-chain vote to ratify them.
  • Politeia has been updated to v1.2, adding features like proposal updates and the capacity to make comparisons between any two versions of a proposal.
  • The Android and iOS mobile wallets saw new releases in their respective app stores.
  • GoDCR reached its first functional testnet build, demonstrating what has been achieved by that project so far, as the proposal for continued funding of GoDCR was published and discussed.

Contents:

· Development
· People
· Governance
· Network
· Ecosystem
· Outreach
· Media
· Markets
· Relevant External

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

dcrd is a full node implementation that powers Decred’s peer-to-peer network around the world.

Explicit Version Upgrades consensus change (DCP-8):

  • new consensus rules have been implemented. Once activated, unknown transaction and script versions will be rejected until they have explicitly been enabled by another consensus change. Coins that were spendable before activation will remain spendable. This change will provide greater network security and allow developers to write more bug-proof code, as explained in proposal comments, DCP-8, and a recent dev discussion.
  • @davecgh posted a proposal update that all dcrd development work is complete

Automatic Ticket Revocations consensus change (DCP-9):

  • preparations: added tests, added agenda definitions, reorganized code to fit upcoming changes. A new transaction priority was introduced to ensure automatic revocations are always created. Full list of priorities becomes: votes (highest) > automatic revocations > tickets > regular transactions and revocations (lowest).
  • implemented the actual consensus change. Once activated, blocks will be required to contain revocations for all tickets that become missed or expired as of that block. New rules will also allow unlocking some ~200K DCR that got stuck in unrevoked missed tickets.
  • @rstaudt2 posted a proposal update that all dcrd development work is complete

Other merged work:

  • implemented spend journal pruning that delays removal of spend journal entries until they are no longer used (this is needed for asynchronous indexing that will speed up block validation)
  • added more tests for address manager and decoupled it from wire package, in preparation for upcoming changes in the wire protocol
  • pinned Docker images and GitHub Actions with hashes instead of tags for better supply chain security
  • reworked Docker support to provide an image with a strong focus on security. It only includes Decred-specific binaries (“distroless”) and runs them as an unprivileged user. The new final image is around 10 MB, compared to ~1 GB for the previous version.
  • code upgraded to use Go 1.16 features
  • updated module hierarchy graph
Huge dcrd release brewing… including 3 consensus votes, ~30% faster syncing, and much more. (@rstaudt2)

dcrwallet

dcrwallet is a wallet server used by command-line and graphical wallet applications.

  • allow processing VSP fees for already bought tickets when the ticketbuyer is off
  • changed the default ticketbuyer limit to 1 max tickets per block
  • allow to disable account discovery (allows to optimize clients that don’t need it such as dcrlnd)
  • added config option for max log size before it is rotated
  • code upgraded to Go 1.16 and latest dcrd modules
  • fixed some issues with processing and confirming fee payments for VSP-managed tickets
  • fixed fee calculation for multisig transactions
  • fixed a potential race issue in SPV mode

Decrediton

Decrediton is a full-featured desktop wallet app with integrated voting, StakeShuffle mixing, Lightning Network, DEX trading, and more. It runs with or without a full blockchain (SPV mode).

  • implemented new UI design for LN Channels tab
  • update all accounts’ passphrases on private passphrase change
  • fixed some issues with syncing VSP fee payment status
  • fixed 3 bugs when creating a wallet
  • fixed legacy VSP errors being shown in new VSP mode
  • fixed missing navigation links
  • fixed blurring when restoring a Trezor wallet
  • fixed crashes caused by processing very large transactions
  • fixed change from mixed sends being sent to a wrong address
Decrediton LN Channels page

Politeia

Politeia is Decred’s proposal system. It is used to request funding from the Decred treasury.

Another feature and bugfix release has landed on Politeia website! Highlights of v1.2.0:

  • proposal author updates for approved proposals
  • compare any two proposal versions
  • embed image button
  • optimistic instant comment vote updates
  • server: proposal billing status, to formalize whether billing is allowed or not
  • server: unified proposal status to simplify clients
  • server: increased security and stability

For more details check the release notes in politeia and politeiagui repositories.

User-facing changes merged in September:

  • integrated new proposal status and admin ability to set billing status
  • improved UX of embedding images
  • show login modal when user session expires
  • added SEO meta tags to improve placement in search results and enable nice previews on Twitter and Facebook
  • updated dark mode toggle design
  • ~18 GUI bug fixes and ~3 enhancements

Backend, internal, and command-line changes:

  • added unified proposal status that serves as a single source for proposal metadata from different plugins, thus removing complexity from clients and also reducing the load on the server. The new status can be queried with pictl proposalsummaries command.
  • added high-level interfaces for file system checks to verify data integrity and rebuild caches on startup. Implementations for individual components will be done separately.
  • implemented cache rebuild for the record inventory when file system check is enabled with --fsck
  • added option to save pictl’s vote results output as CSV
  • added read and write timeouts for both politeiad and politeiawww servers
  • refactored middleware in politeiad and politeiawww servers and added read limits for client requests and WebSocket messages
  • added page sizes to policy responses
  • added documentation: exported API docs, plugin system overview, and writing E2E tests
  • fixed a memory leak
  • ~4 other backend bug fixes
  • increased backend and end-to-end UI test coverage
Politeia dark mode icon. Shoutout to our designers @MariaPleshkova and @linnutee!

vspd

vspd is server software for running a Voting Service Provider. A VSP votes on behalf of its users 24/7 and cannot steal funds.

dcrpool

dcrpool is server software for running a mining pool.

  • upgraded to use Go 1.16 features
  • fixed handling of blocks that got reorged off the chain

dcrlnd

dcrlnd is Decred’s Lightning Network node software. LN enables instant and low-cost transactions.

DCRDEX

DCRDEX is a non-custodial exchange for trustless trading, powered by atomic swaps.

User-facing:

DCRDEX candlestick chart. Not investment advice.

Backend and internal changes:

  • added infrastructure for paying the registration fee in assets other than DCR, implemented reg fees in BTC
  • refactoring to prepare for Bitcoin SPV support
  • more fine-grained rate limiting to protect against network attacks
  • optimized restoring account from seed
  • simplified the procedure of changing lot sizes (the minimum trade amount)
  • discover accounts earlier in the flow (to support multi-asset fees)
  • simplified check for wallet ownership when changing wallet settings
  • added usermatches command-line app for retrieving match data and saving it as CSV

Work towards internationalization:

  • added translation support to the web client UI
  • improved system for translating notifications
  • added a dexc switch to re-translate templates on the fly (allows faster iteration)
  • added Portuguese and Chinese translations
DCRDEX Chinese translation preview

Internal changes towards Ethereum support:

  • added a tool to verify swap contract deployed on the Ethereum network (can be used to detect an unexpected change of the contract)
  • added decoding and validation of transactions while they are in the mempool (allows to fail fast before a malformed tx is mined)
  • implemented estimation of max order the wallet may place

Decred Wallet (Android)

Decred Wallet v1.6.1 has been released on Google Play Store!

Privacy-minded users can now also get the signed APK directly from the GitHub release.

Merged in September:

  • added settings option to choose app theme
  • allow wallet unlock attempts with an empty passphrase

Merged in dcrlibwallet library (shared by Android/iOS wallets and GoDCR):

  • added various data queries to support multi-wallet staking overview

See the new mobile wallets proposal to learn about the development roadmap for 2021–2022.

Decred Wallet (iOS)

Decred Wallet v1.6.1 has been released on App Store!

Merged in September:

  • implemented dark mode
  • notify users that accounts cannot be deleted once created
  • allow wallet unlock attempts with an empty passphrase
  • ~5 bug fixes and ~2 UI tweaks
Decred Wallet (iOS) Dark Overview

GoDCR

GoDCR is a lightweight desktop wallet app with integrated staking, privacy, and Politeia browsing.

First testnet build is available for preview! Download it from the GitHub releaseand verify the signatures. If you plan to hunt for bugs, it is recommended to build from latest source to have all recent bug fixes.

User-facing changes merged:

  • split big seed backup flow into steps
  • added “Advanced mode” link to Send page, which allows to manually select coins to spend in the transaction (this privacy feature is also known as “coin control”)
  • added hover effects to numerous widgets
  • show rescan progress in Overview
  • improved UX for creating wallets and accounts
  • allow closing dropdowns by clicking outside
  • improved rendering of Markdown tables
  • refactored ticket fetching and display
  • optimized UX of language and currency selection modals
  • added Spanish translation
  • fixed blurry icons on higher resolutions
  • ~7 other UX tweaks and ~17 bug fixes

Internal and developer changes:

GoDCR seed education

In progress:

  • DEX integration (building on base support in dcrlibwallet)

Check the second GoDCR proposal for a status update and 2021–2022 roadmap.

dcrdata

dcrdata is an explorer for Decred blockchain and off-chain data like Politeia proposals, markets, and more.

User-facing changes:

Internal changes:

  • switched to a new trylock implementation
  • reduced reliance on dcrd’s RPC packages
  • upgraded to latest dcrd
  • removed abandoned notify.js dependency

Tip: bleeding-edge development version of dcrdata can be accessed at tip.dcrdata.org.

dcrdevdocs

dcrdevdocs is a source code for Decred developer documentation.

Other:

  • Bug Bounty program got two scope updates: replaced dcrstakepool with vspd, removed dcrdocs, and clarified rules for atomicswap.

People

Welcome to new first-time contributors with code merged to master: @naveensrinivasan (dcrd)!

Community stats as of Oct 2:

Governance

In September the new treasury received 10,274 DCR worth $1.4M at September’s average rate of $139.56. 590 DCR was spent to pay contractors, worth $82K at September’s rate, or $95K at August’s billing rate of $161.24. As of Oct 2, combined balance of legacy and new treasury is 723,528 DCR (83.5 million USD at $115.45).

Two new proposals were submitted, both by @raedah, requesting renewed funding for GoDCR and Mobile Wallets.

Voter participation reached new heights, with both of the votes this month seeing turnout above the previous record level.

  • The PR proposal from Monde was approved with 97.5% approval and a turnout of 75%.
  • The proposal to fund an educational video series for the Indian market, from @finstreet21, was rejected with 45% approval and turnout of 77%.

The long-awaited proposal author updates feature is now live on Politeia and has already been used by two development proposals to report progress.

See Politeia Digest issue 46 and issue 47 for more details on the month’s proposals.

Network

Hashrate: September’s hashrate opened at ~355 Ph/s and closed ~228 Ph/s, bottoming at 190 Ph/s and peaking at 449 Ph/s throughout the month.

Distribution of hashrate reported by the pools on Oct 1: Poolin 36%, F2Pool 25%, AntPool 22%, BTC.com 5%, ViaBTC 5%, Luxor 3%, HuobiPool 1%, CoinMine 0.15%, OKEx 0.13%. Distribution of 1,000 blocks actually minedbefore Oct 1 confirmed the reported hashrate.

Staking: Ticket price varied between 192.8–210.8 DCR, with 30-day average at 199.4 DCR (+5.6).

The locked amount was 7.69–8.16 million DCR, meaning that 57.7–61.1% of the circulating supply participated in proof-of-stake.

Ticket prices seem to have hit a relative plateau between two extremes.

VSP: On Oct 1, ~7,600 (-500) live tickets were managed by listed vspd servers and ~220 (-30) by listed legacy dcrstakepool servers. Collectively the 8 legacy and 15 new VSPs managed 19% (-2%) of the ticket pool. Unlisted but still active legacy VSPs managed 29 (-11) live tickets.

Nodes: Throughout September there were around 204 reachable nodes according to dcrextdata.

Node versions as of Oct 1 snapshot (257 dcrd nodes): v1.6.2–55%, v1.6.0–13%, v1.6.1–12%, v1.7 dev builds — 14%, v1.6 dev builds — 2.7%, v1.5.2–2%, v1.5.1–1.2%.

The share of mixed coins varied between 50.3–52.2% and set a new all-time high while the sum of mixed unspent coins broke the 7 million mark.

Daily mixed amount varied between 240–550K DCR.

Ecosystem

Matrix users are advised to upgrade their clients (most notably Element) to patch security vulnerability disclosed on Sep 13. If a user’s account is compromised (by either a direct compromise of account credentials, or by a compromised homeserver), in certain circumstances it may be possible to read encrypted messages sent to such account from its vulnerable contacts. The disclosure noted, “The greatest risk is to users who are in encrypted rooms containing malicious servers. Admins of malicious servers could attempt to impersonate their users’ devices in order to spy on messages sent by vulnerable clients in that room.”. As an extra safety measure, you can review active sessions and remove any obsolete or suspicious ones.

Legacy decredvoting.com has been removed from the VSP list to facilitate user migration to the new vspd system. Voting wallets are still online to vote the remaining tickets (9 tickets as of Oct 1). Decred Voting has served since 2018and is known for developing advanced features like email notifications on voted tickets and custom ticket analytics dashboard, and for supporting small holders with education on ticket splitting and features to make it easier to use.

For anyone still using legacy VSP, it is recommended to switch to vspd providersto avoid the risk of missed tickets, e.g. in case the legacy VSP shuts down or stops working with the coming consensus upgrades. As of Oct 1, all legacy VSPs managed less than 250 tickets or 0.6% of the ticket pool.

u/daryledesilva shared a dollar-cost averaging calculator for 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

r/decred’s pinned post for newcomers has been updated: Welcome to Decred: Money Evolved.

@davecgh armed us with a new fantastic Decred pitch answering how Decred is valuable long term. Twitter version here.

Monde PR’s achievements for September:

  • PR proposal passed September 14th
  • updated the PR calendar to include upcoming announcements and PR activity
  • pitched Decred to two PR opportunities
  • secured two media interviews

Secured the following news articles:

Media

Selected articles:

  • Decred Blockchain Analysis — Part 3 by @richardred (blockcommons.red) — explores what insights can be found by applying address clustering to all the tickets in the pool at specific block heights. Note: there remain a couple of issues to be fixed with the results.
  • Decred address clustering deep dive by @richardred (blockcommons.red) — sub-report specialized on the challenges of clustering, includes many graphs showing the voting behavior of different clusters (users), and what it looks like when something is wrong with a cluster.
  • A deep dive into how the top 10 DAOs work by Andrey Sergeenkov (coinmarketcap.com)

Videos:

  • Being fork resistant — Decred Fundamentals by @phoenixgreen (youtube)
  • How is Decred fork resistant? — Decred Fundamentals @phoenixgreen (youtube)
  • Decred in Depth Ep. 43 — Chris Dannen + design thinking + Decred’s future by @elima_iii (youtube)
  • Decred Price Analysis — 15th September 2021 by Brave New Coin (youtube)

Audio:

Translations:

  • Decred News August — in Chinese (@Dominic), published on Chinese video platforms like Bilibili, Weibo, and WeChat
  • Decred Journal August 2021 was translated to Arabic (@arij, @abdulrahman4), Chinese (@Dominic), and Spanish (@francov_). Thank you to all translators for staying around!

Share your translations in our #translations chat room.

If this is what chain analysis looks like, I want to change my job (@bee)

Markets

In September DCR was trading between USD 96.14–185.79 / BTC 0.0023–0.0038. The average daily rate was $139.56.

DCRDEX September trading volume

Relevant External

Sushi’s Miso app was exploited to steal the proceeds of an NFT drop ($3M for Kia Sedonas from Jay Pegs Auto Mart). The attacker was identified (through their use of ENS domain) as a Sushi developer, who had inserted code into the front end which would send funds to their own address. The funds were subsequently returned.

The Compound DeFi app deployed new smart contracts which gave away $80M worth of COMP tokens in unintended ways. Founder Robert Leshner asked recipients to send the tokens back, and described it as a moral dilemma, after initially intimating that people who don’t give the tokens back could have their details passed to tax collection authorities. One interesting aspect of the story is that the problem was identified quite quickly, but because changing the contracts requires a governance process there was no way to deploy a quick fix and all of the vulnerable funds were drained.

Coinbase users have been exploited, it seems that around 6,000 users whose login details had been compromised elsewhere then suffered losses from their Coinbase accounts after the attackers exploited a flaw in Coinbase’s SMS two-factor recovery process to bypass this safeguard and withdraw their victims’ funds. In a notification letter to customers, Coinbase said the flaw has been fixed and that all affected customers will be reimbursed. This follows on from more general discontent with Coinbase customer service in the summer.

The Digital Asset Market Structure and Investor Protection Act, which was introduced in July, continues to see coverage and discussion, indicating that it will receive serious consideration from lawmakers. The proposed Act is one of the broadest pieces of legislation to address digital assets, and would clarify how different types of asset would fall under the purview of different enforcement agencies. The proposed definition of a security would focus on equity or voting rights in the issuing (corporate) entity, excluding voting on blockchain matters like block creation. There is also an aspect whereby selling tokens for an unfinished product whose production will be funded by the token sale (i.e. the ICO model) would be considered securities. Stablecoins could not be created or used without being approved by the Secretary of the Treasury, and the Federal Reserve would receive the authority to issue a US central bank digital currency.

That’s all for September. Share your updates for the next issue in our #journalchat room.

About

This is issue 42 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: davecgh, lukebp
  • title image: saender
  • funding: Decred stakeholders