Decred Journal — November 2021

Richard Red
Dec 15, 2021 · 17 min read
Image: Remote Node Outpost II by @saender

November’s highlights:

  • A huge proposal to change the distribution of Decred block rewards so that PoW miners get a much smaller share was published, discussed, and has now been approved.
  • The community has funded an outreach proposal after it was rejected by a Politeia vote.
  • Politeia v1.3.0 is live in the wild, bringing improvements to the handling of proposal status, GUI improvements, and end-to-end testing.
  • Two new reusable packages have been developed in dcrd, a general purpose one for fast big integers, and one for building Decred apps.

Contents:

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

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.

A minor bug in consensus has been fixed where tickets voting on treasury spends have not been detected as voted and were falsely reported as missed in some RPC requests. Importantly, the bug cannot cause an unintended fork and only affects data served via RPC. The live ticket pool is still accurate and all votes and payouts are unaffected. The fix will require a database migration.

Welcome uint256, a new package implementing highly optimized allocation-free 256-bit integer arithmetic. It has the potential to speed up the initial chain sync by 5-10% when used in place of the standard library big integers. The package has a strong focus on performance and correctness, and features arithmetic, boolean comparison, bitwise logic, bitwise shifts, conversion to/from relevant types, and full formatting support - all served with an ergonomic API, full test coverage, and benchmarks. For a full dose of hacker’s delight, follow how it came into existence over 59 commits with a thorough README at the end.

The uint256 package became the first step of a long-term plan to develop a new primitives module. It will become a new fundamental building block of consensus code by consolidating key concepts such as transactions, block headers, blocks, and sequence lock definitions, which are currently spread across multiple packages. Refined abstractions will improve clarity by making the distinction between consensus primitives and the data sharing protocol, and allow for significant performance optimizations.

Progress of the stdscript package (an effort to decouple “standard” from “consensus” script handling, to avoid unintended changes to consensus):

  • added provably pruneable script support. This is a special form of public key script that cannot be spent and is safe to prune from the set of unspent transaction outputs (UTXOs) to save memory. They are primarily useful for anchoring data into the blockchain, as used by timestamping and Politeia.
  • added support for determining the number of signatures required by a script
  • added extraction of addresses from standard recognized forms of public key scripts
  • package stdscript moved from the internal staging area to the txscript module and is now ready for consumption
  • all packages converted to use the new stdscript package. To make review easier, the change was split into 50 small commits such that everything builds and passes all tests each step of the way.
  • added methods to universally extract public key hashes and script hashes from stake-related scripts, which helps many applications that don’t care about the specific script type (ticket purchase, vote reward, revocation, change, etc)

Other merged changes:

  • fill and check fraud proof data for transactions entering the mempool. This data includes the input amount, block height, and an index in that block, and allows efficient detection of fraudulent transactions trying to spend more than their inputs provide. As a bonus, it also allows efficient calculation of fees without slower loading of chain data or requiring a full transaction hash index.
  • upgrade code further decoupled from primary code to remain more stable as the primary code evolves
  • tuned ping interval to prevent undesirable disconnects in higher latency scenarios
  • optimized memory usage in netsync package
  • reworked logic for downloading next blocks to be more compatible with parallel block downloads from multiple peers
  • fixed an edge case in UTXO database migration (did not affect release builds)
  • fixed a deadlock on shutdown (did not affect release builds)
  • fixed an overflow in the optimized constant-time ModNScalar addition operation
  • code cleanup and seasonal module dependency rituals in preparation for the next release
Another day of optimizing dcrd

dcrwallet

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

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).

User-facing changes:

  • implemented new UI design for Confirm Seed view to simplify the painful UX of entering seed words
  • added ability to restore a DEX account from a DEX seed
  • added ability to select custom install directory for Bitcoin wallet. Any attempts to update the existing bitcoin.conf have been removed.
  • hidden the legacy VSP ticket purchasing UI as a first step to removing it
  • ~7 bug fixes

Internal:

  • reused Tabs component from the pi-ui library
  • added automated tests for: tabbed page component, Home, Privacy and Security pages

Changes in the pi-ui library (shared by Decrediton and Politeia):

Politeia

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

New Politeia release is live! Highlights of v1.3.0:

  • billing statuses (will improve navigation and protect against invalid billing)
  • proposal status indicating the stage of the proposal’s life cycle
  • SEO tags for prettier search engine results
  • various GUI UX improvements
  • parallel trickling in politeiavoter for better privacy and reliability
  • new end-to-end testing infrastructure
  • codebase preparations for the user layer rewrite

For more details check the release notes in politeia and politeiagui repositories, or the quick Twitter walkthrough by @lukebp.

User-facing changes merged in November:

  • use an unambiguous date format like 08 Sep 2021
  • fixed Go Back navigation
  • ~10 other bug fixes

Internal GUI changes:

  • added an extensible framework for writing end-to-end tests, including tools to mock API responses, generate data, and a how-to guide
  • added more end-to-end tests to prevent repeating bugs

Backend changes:

  • prevent RFP proposals from billing status changes (they cannot bill against the treasury, unlike RFP submissions)
  • introduced approved status for proposals that cannot bill against the treasury (like RFP), to differentiate from active status that can bill
  • implemented session storage in MySQL
  • implemented data integrity checks for the usermd (“user metadata”) plugin. This is the final check needed to proceed with importing legacy Git proposals into the new tstore.
  • allow to set the status of proposals created with the pictl seedproposals command (helps in testing)
  • added printing of execution time statistics to the pictl command to help with performance testing
  • ~2 bug fixes

politeiavoter command-line tool:

  • allow up to 100 parallel bunches
  • reworked help output to be more useful and match dcrctl. Also, only connect to the wallet if the command needs it.
  • corrected default values in the config file and updated the sample config

A notable feature of Politeia development is a formal pre-release step to test all changes in both the backend and the GUI.

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.

  • report status of the dcrd instance on both the admin page and the status API endpoint
  • show alternate signing address in ticket search result
  • clarified terminology around “alternate signing address”
  • added a workaround for tracking revoked tickets (will not be needed when auto ticket revocations activate)
  • determine client IP from headers set by the reverse proxy server
  • support custom directory for the test harness
VSP admin status page

dcrpool

dcrpool is server software for running a mining pool.

  • updated to master versions of dcrd and dcrwallet (this breaks compatibility with the 1.6 release)

dcrlnd

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

  • updated to latest walletdb package from btcwallet

cspp

cspp is a server for coordinating coin mixes using the CoinShuffle++ protocol. It is non-custodial, i.e. does not hold any funds.

  • mixes now occur every 15 minutes, down from 20 minutes
  • fixed a potential DoS vector where invalidation of unmixed data (e.g. due to a double spend) could fail a mix. It has not been exploited to developers’ knowledge. This change also makes validation concurrent to reduce latency.

DCRDEX

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

User-facing changes:

  • show detailed status for revoked matches (Refund pending, Refunded, Redeemed, or Complete)

@chappjc shared a user-friendly overview of recently added features like multi-asset fees or built-in Bitcoin SPV wallet.

Internal changes:

  • added support for DCR SPV wallets
  • more accurate sync status of the BTC wallet
  • removed the ban and unban endpoints because it is already handled elsewhere and because operator-initiated ban/unban is incompatible with a mesh configuration or a tiered/bonded user scheme (two future concepts)
  • store active matches in a separate storage bucket instead of marking them as active or retired
  • added rate limits for new routes
  • ~7 bug fixes

Progress towards Ethereum support:

  • implemented: fetching of raw transaction data, basic contract validation, Swap function, and SwapConfirmations function
  • pack the Swap struct (essentially reorder it) to save 5–15% gas when initializing and redeeming swaps
  • removed function for initiating a single swap in favor of the batched version, in order to reduce smart contract code and client+server code around it (less code is easier to audit)
  • updated the swap contract to redeem swaps in batches too
  • lock funds for a possible refund
  • calculate pending balance by taking into account pending incoming and outgoing transactions
  • made large refactoring of the ETH client to call methods more directly, implement contract versions, switch to EIP-1559 transactions, and more
Pay reg fees in other coins to save more DCR

Decred Wallet (Android)

Decred Wallet (iOS)

GoDCR

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

  • implemented new UI design for the Staking page (renamed from Tickets)
  • implemented new Governance UI with a new welcome page
  • updated Settings page design
  • show account mixer summary on the Overview page
  • added ability to spend from the unmixed account (for those who know what they’re doing)
  • ~9 bug fixes

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

  • added dexdcr package to allow client apps to integrate DCRDEX

Hello, after careful consideration the Planet Decred team has determined that we are going to delay the GoDCR proposal v2 until we have a mainnet release. Because of this, please look for the v2 GoDCR proposal to post sometime in January. 1.0 mainnet GoDCR should be finished by the end of the year. (@monsa00 on 2021–12–02)

dcrros

dcrros is a middleware service that provides access to the Decred network via Rosetta API.

  • v0.1.0 has been tagged as the first official release of dcrros. It embeds core Decred software v1.6.0 and implements Rosetta spec v1.4.10. See the full list of features in the release notes.
  • updated to use latest released Decred v1.6.2 and Rosetta SDK v0.7.2. Also added an --offline flag to simplify running offline instances of dcrros (e.g. for tx construction and signing, possibly on an air-gapped setup).
  • the above change has been released as v0.1.1

dcrdocs

dcrdocs is the source code for Decred user documentation.

  • updated mkdocs-material theme and polished Markdown sources

decred.org

dcrweb is the source code for the decred.org website.

Other:

  • the timestamp.decred.org app got several small fixes and an improved copy with consistent terminology
  • zero-allocation script tokenizer from dcrd was backported to btcd yielding ~20% speedup for initial blockchain download

People

Community stats as of Dec 1:

Governance

In November the new treasury received 10,206 DCR worth $1.1 million at the month’s average rate of $108.13. 1,995 DCR was spent to pay contractors, consisting of 974 DCR for September and 1,021 DCR for October. The latter is worth $110K at November’s rate, or $124K at October’s billing rate of $121.57. As of Dec 6, combined balance of legacy and new treasury is 743,661 DCR (73 million USD at $98.01).

Two new proposals were submitted this month:

  • A proposal to change the subsidy (block reward) split from the current setting (60/30 PoW/PoS) to favor PoS (10/80) was submitted by @jy-p. The proposal passed in early December with approval of 92% and a turnout of 78%, the work is expected to be complete within a few weeks at a cost of no more than $30,000, and the change would take effect once it is introduced and voted on via a consensus change proposal. The proposal ended up collecting 166 comments on Politeia (new record) and 60+ on Reddit.
  • A proposal to extend the communications and content work of the Decred Arabia team with $10,600 for another 10–12 months — in the previous period in-person events were curtailed and the budget was under-spent. This proposal was approved in early December with approval of 98% and a turnout of 61%.

The proposal for Economic Education and Outreach from @ammarooni was rejected with 33.6% Approval and turnout of 70%. However, this wasn’t the end of the story as Ammar put up an address for donations, and this quickly hit the target of $12K via 30 different transactions. He is now “charged up like a bison” and ready to deliver the proposed program.

Anybody voting via command line please upgrade:

If you use politeiavoter to trickle in your proposal votes, make sure to upgrade to the v1.3.0 politeiavoter before the next round of voting. Retrying failed votes may not work properly if you don’t. (@lukebp)

See Politeia Digest issue 49 for more details on the month’s proposals.

Network

Hashrate: November’s hashrate opened at ~278 Ph/s and closed ~437 Ph/s, bottoming at 221 Ph/s and peaking at 441 Ph/s throughout the month.

Decred hashrate

Distribution of hashrate reported by the pools on Dec 1: AntPool 36%, Poolin 34%, F2Pool 13%, ViaBTC 7%, Luxor 6%, BTC.com 3%, OKEx 0.4%, CoinMine 0.16%.

Staking: Ticket price varied between 139.1–327.8 DCR, with 30-day average at 203.6 DCR (+12.0).

The locked amount was 7.42–8.19 million DCR, meaning that 54.7–60.5% of the circulating supply participated in proof-of-stake.

After a large drop in stake participation and ticket price, the following ticket buying has sent the price to a new ATH of 327.8 DCR.

Ticket price swings

VSP: On Dec 1, ~6,800 (-600) live tickets were managed by listed vspd servers and 195 (-29) by listed legacy dcrstakepool servers. Collectively the 7 legacy and 15 new VSPs managed 17.5% (-1.4%) of the ticket pool. The 3 unlisted but still active legacy VSPs managed 45 (+10) live tickets.

Nodes: Throughout November there were around 186 reachable nodes according to dcrextdata.

Node versions as of Dec 1 snapshot (208 total, dcrd only): v1.6.2–61%, v1.7 dev builds — 13%, v1.6.0–12%, v1.6.1–7%, v1.6 dev builds — 3.4%, v1.5.2–2.4%, v1.5.1–0.5%.

The share of mixed coins varied between 52.9–55.1% and set a new all-time high with the sum of mixed unspent coins above 7.5 million.

StakeShuffled DCR

Ecosystem

Chinese mining pools have experienced disruption as a result of Internet censorship and DNS issues, and some have launched alternative domains in response. This seems to have caused some redistribution of the Decred hashrate, while the total hashrate has not been affected much.

F2Pool announced that it will shut down operations in mainland China by the end of 2021. This was followed by the closure of mining pools for several coins including XMR, although the DCR pool has been online with 46 Ph/s as of Dec 1.

Ledger Live users have reported problems with sending DCR from this wallet. Due to incorrect fee calculation, the transactions would get stuck in the mempool and lock coins. A workaround was found where coin control feature could be used to unlock the funds.

Someone has reported that DCR became the major placeholder (27%) in the PRIV index at FTX, which tracks 9 privacy coins, although this appears to be an error of rebalancing and the weight of DCR is supposed to be lower.

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.

Outreach

Decred now has an Odysee channel where YouTube content has been mirrored, just in case. As a bonus, it allows watching Decred videos without visiting YouTube and Google. Odysee is powered by LBRY, a decentralized protocol for fair and robust content distribution (with optional monetization). Please consider supporting Decred videos if you use this platform.

October Decred Journal had an experimental custom announcement on Decred’s Instagram page, in addition to all existing channels. Veteran Instagram users are welcome to support the account or advise how to grow it.

Last but not least, someone has registered an OnlyFans account for Decred. It is hard to comment any further.

Monde PR’s achievements for November:

  • pitched 4 stories/PR opps to finance and crypto publications

Secured the following news articles:

Media

Selected articles:

  • Decred: A top tier cryptocurrency by Andy Hecht (investing.com)
  • Jonathan Zeppettini of Decred on the 5 things you need to understand in order to successfully invest in cryptocurrency by Tyler Gallagher of Authority Magazine (medium)

You need to understand yourself, and that the journey will be a never-ending learning experience. There are three traits you will also want to cultivate if you want to have any chance at success in my view: patience, discipline, and focus. As with any type of investing these will determine your outcome. (@jz)

Videos:

  • Market updateDecred interviewMoon or bust by Logan Ross of Benzinga (youtube) — @jy-p talks Decred and answers questions from the chat, starting 29 min

Audio:

  • There is no top. Bitcoin on-chain analysis with Glassnode (bravenewcoin.com, youtube, mp3) — @Checkmate talks about Decred around 35 minutes in

Art and fun:

Translations:

  • Politeia Digest 48 — in Spanish by @francov_
  • Decred Journal October 2021 was translated to Arabic (@arij, @abdulrahman4), Chinese (@Dominic), and Spanish (@francov_). Thank you for all the hard work!

Markets

In November DCR was trading between USD 91.36–121.75 / BTC 0.0016–0.0019. The average daily rate was $108.13.

DCRDEX trading volume charts from @bochinchero:

DCRDEX daily trading volume
DCRDEX monthly trading volume

Relevant External

Binance froze DOGE withdrawals after apparently processing a batch of old withdrawal requests accidentally after an upgrade. Binance users reported being asked to return DOGE that was not in their accounts and being informed that they would no longer be able to make withdrawals until they return the DOGE. Elon Musk contributed to raising awareness of the issue by criticising Binance on Twitter. Binance later published their version of the story confirming that the problem was due to upgrading their wallet while it had old stuck transactions, which were then rebroadcast successfully. The explanation states that withdrawals of DOGE were down for 17 days so they could “re-build the wallet”.

The ECC has presented a new Zcash road map which would see the project shift to proof-of-stake consensus over the next three years, with a focus on cross-chain interoperability and integrating governance features in the wallet. The other area being explored for Zcash is “shielded assets”, representations of other assets on the Zcash chain, but the report is on the fence about whether this would be beneficial and worthwhile. These priorities had been informed by voting of forum members and coin holders.

Polkadot held a token vote to decide on the future of their brand, it followed a quadratic voting method which diminished the weight of whale voting accounts and voters picked between two logo and identity directions. The choice of directions was purely aesthetic. The process to revise these assets began in December 2020, it was funded with a budget of 10,000 euros. The final vote to choose one of the competing designs was conducted on a bespoke page and likely marks the first time that most of the 2,097 accounts voted — as the voting interface for funding proposals is much less accessible.

A community of crypto investors formed ConstitutionDAO to try and buy a rare copy of the US constitution, raised $40 million in ETH but then lost the auction to hedge fund CEO, Ken Griffin. This caused a lot of uncertainty about what would happen to the contributed funds, with a new token being announced and cancelled, and the price of the PEOPLE token which contributors to the DAO had received fluctuated wildly. The project ultimately decided to wind down as no agreement could be reached on how to move it forward without the copy of the constitution, contributors can reclaim their ETH (but transaction fees will consume most or all of this for many of the smaller scale contributors) or claim their PEOPLE tokens.

The infamous Infrastructure Bill has been signed into law, set to take effect on Jan 1, 2024. A bipartisan bill has been introduced which would address the crypto community’s concerns with the Infrastructure Bill.

Meanwhile, the EU’s approach to regulating crypto-asset markets appears to be proceeding in a more measured fashion and drawing a much clearer boundary around what and who is being regulated.

The NFT concept and its fans have been provoking adverse reactions from some online communities — Creative Commons and Discord have distanced themselves from NFT-related material, while an NFT project for young writers was scrapped after a Twitter campaign against it.

Square announced a white paper detailing its proposal for a decentralized exchange, tbDEX. Square then changed its name to Block.

ETH has been added as a currency option by Sothebys auction house, with live ETH bids being accepted during the auction and displayed on the feed — payment can also be made in BTC, USDC, or fiat currency.

Two of the Wyoming-based “DAOs” have been prevented from registering digital tokens as securities by the SEC because they provided deficient paperwork.

That’s all for November. Share your updates for the next issue in our #journal chat room.

About

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

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

Credits (alphabetical order):

  • writing and editing: bee, bochinchero, degeri, l1ndseymm, richardred
  • reviews and feedback: davecgh, lukebp
  • title image: saender
  • funding: Decred stakeholders

Decred

Curated writings from Decred contributors across the…

Decred

Curated writings from Decred contributors across the blockchain ecosystem.

Richard Red

Written by

Writing about cryptocurrency/blockchain projects that are doing something interesting with regard to governance. Decred contributor.

Decred

Curated writings from Decred contributors across the blockchain ecosystem.