Decred
Published in

Decred

Decred Journal — November 2021

Image: Remote Node Outpost II by @saender
  • 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.

Development

  • 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)
  • 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
  • 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
  • reused Tabs component from the pi-ui library
  • added automated tests for: tabbed page component, Home, Privacy and Security pages
  • 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
  • use an unambiguous date format like 08 Sep 2021
  • fixed Go Back navigation
  • ~10 other bug fixes
  • 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
  • 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
  • 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
  • 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
  • updated to master versions of dcrd and dcrwallet (this breaks compatibility with the 1.6 release)
  • updated to latest walletdb package from btcwallet
  • 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.
  • show detailed status for revoked matches (Refund pending, Refunded, Redeemed, or Complete)
  • 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
  • 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
  • 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
  • added dexdcr package to allow client apps to integrate DCRDEX
  • 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
  • updated mkdocs-material theme and polished Markdown sources
  • 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

Governance

  • 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%.

Network

Decred hashrate
Ticket price swings
StakeShuffled DCR

Ecosystem

Outreach

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

Media

  • 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)
  • Market updateDecred interviewMoon or bust by Logan Ross of Benzinga (youtube) — @jy-p talks Decred and answers questions from the chat, starting 29 min
  • There is no top. Bitcoin on-chain analysis with Glassnode (bravenewcoin.com, youtube, mp3) — @Checkmate talks about Decred around 35 minutes in
  • 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

DCRDEX daily trading volume
DCRDEX monthly trading volume

Relevant External

About

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

--

--

Curated writings from Decred contributors across the blockchain ecosystem.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Richard Red

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