Decred Journal – May 2022

May was quite an epic month for Decred: The four consensus changes; two interim bug fixing; GoDCR; Decred Magazine launched and so much more ...

Decred Journal – May 2022
Decred Journal – May 2022
Image: Point Integral by @saender
  • The four consensus changes (DCP0007-10) recently approved by voters have activated on mainnet.
  • There have been two interim bug fixing releases of the main software, v1.7.2 and v1.7.3.
  • GoDCR v1.7.0 has been released, the first version which is intended for mainnet use - and a new proposal for funding has been published.
  • Decred Magazine launched, it is a new platform for hosting and sharing Decred news and other content spearheaded by @phoenixgreen.
  • All of the old failed tickets which didn’t get revoked by their owners have now been revoked thanks to the activation of DCP-0009.
  • Four new proposals have been published on Politeia.

Contents:

Four Consensus Changes Activated


All four consensus upgrades added in v1.7 and approved by the stakeholders have activated on May 8, in block 657,280:

  • DCP-0007 - the algorithm that determines the maximum monthly spend from the new treasury was fixed, and should no longer interfere with making monthly payments to contractors.
  • DCP-0008 - nodes now reject newer transaction versions they can’t handle, and explicit consensus upgrades are now required to define and allow newer versions. It will be easier and less error-prone for all actors in the Decred ecosystem to integrate with future consensus changes. Some engineers would even say that fully-validating nodes rejecting data they cannot fully validate is the only sensible way to operate. With this upgrade, Decred doubles down on hard forks as the most secure and reliable way to upgrade consensus, “because we can”.
  • DCP-0009 - miners now revoke missed and expired tickets automatically. This removes a big user frustration of dealing with revocations, and especially the pain of lost (not backed up) redeem scripts. Wallet code and GUIs become simpler, staking becomes easier.
  • DCP-0010 - 50% of each block’s reward is redirected from PoW miners to PoS voters, changing the split from 60/30/10 to 10/80/10 for PoW/PoS/treasury. This will hopefully rebalance the supply and demand of DCR and reduce the ability of malicious actors to manipulate the markets. As a byproduct, higher PoS rewards make it more attractive to stake DCR. This was the most debated proposal so far, but stakeholders said Yes and after around 6 months it is live.

This is perhaps the biggest consensus upgrade in Decred’s history.

Core Software v1.7.2 and v1.7.3 Released


dcrd and dcrwallet v1.7.2 were released on May 11 - the latest version as of writing. dcrd got a fix for a rare and hard to hit case when optional indexing is enabled. dcrwallet received a fix for verifymessage, enabled change of public wallet passphrase, and some internal/developer changes. Release notes.

Decrediton v1.7.2 added support for voting on treasury spends, more information in VSP staking, updated DEX module, and several bug fixes. v1.7.3 has followed on May 18 with fixes for macOS 10.15 and setting treasury spending vote choices. Release notes.

Verify the downloads to make sure they have not been modified. The files are signed with Decred Release subkey ending with 6D897EDF518A031D (primary key ends with 6DF634AA7608AF04).

GoDCR v1.7.0 Released


The debut Mainnet release of GoDCR was announced on May 23 after almost 8 months of development since the v0.9.0 Testnet release.

The following features are supported:

  • Basic wallet send/receive
  • Staking (with automatic ticket buying)
  • Wallet privacy via StakeShuffle
  • Proposal voting
  • Consensus rule change voting
  • Message signing
  • Wallet restores
  • Running on Linux, macOS, Windows, and FreeBSD

Download it here and verify the signature from release@planetdecred.org (key ends with A3C9EB3218CCC3E8).

This is just the start for GoDCR. Up next is DEX trading, coin selection, treasury spend voting, and the ambitious goal of building desktop and mobile apps from one unified codebase. Check the proposal seeking to fund this work in 2022-2023.

Image: GoDCR overview showing the summary of each subsystem.

Android and iOS Wallets v1.7.0 Released


Android and iOS wallets v1.7.0 were released on May 11.

Changes since v1.6.1 include:

  • Updated Decred modules to v1.7.0
  • Updated certificate of the mixing server
  • Manual privacy setup improvements
  • Bug fixes and other minor improvements

Mainnet iOS app is available on the App Store and the testnet version on TestFlight.

Android app is available on Google Play Store. For advanced users there is a new APK download signed by Planet Decred Release key.

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.

The general direction in May was to further leverage the consensus changes that activated recently, by adding optimizations and removing unneeded code.

  • Optimized stake node pruning by using block headers instead of checkpoints (reducing dependency on the latter). Header-based sync operations are more efficient and pave the way to multi-peer block downloads.
  • Retroactively fixed revocation fee limit bug that allowed one party to increase the fee paid to miners for another party in split transactions. This has never been exploited on mainnet and can not be exploited since the automatic revocations agenda has activated.
  • Reworked old block rejection logic to replace the use of checkpoints with the assumevalid block (hard-coded in each release). Semantics have been clarified to reflect that “checkpoints” are now only used for handling old forks and are no longer used for optimizations (that now rely on other methods). The --nocheckpoints CLI option has been replaced with --allowoldforks. With this change, the role of checkpoints is reduced to a minimum, which is desirable since they are a kind of a workaround.
  • Removed the deprecated address index along with the associated CLI flags (--addrindex and --dropaddrindex) and searchrawtransactions JSON-RPC. Address index was a lot of overhead from a development perspective to maintain, it wasn’t used by anything of note, and it didn’t really easily provide what most people want from addresses anyway, which is a full balance as opposed to all of the individual transactions. All of the information it provided, and more, is available via dcrdata.
  • Added a function to make basic transaction sanity checks to the blockchain/standalone module, which is nice for consumers (e.g. DCRDEX) since this module has very few dependencies.
  • Implemented header proof storage along with a one-way database upgrade. This will avoid recalculating commitment hashes by storing/loading them from disk. The concept of “block header commitments” sounds scary, but it is a powerful piece of tech worth learning about. It was described well in the proposal, but in short, these commitments are tiny fingerprints of blockchain data which allow to build fast and secure lightweight apps. Currently there is only one type of commitment - the “compact block filters” that allow light wallets to find users’ transactions quickly and securely. More commitments for other use cases may be added in the future.
  • Made blockchain package internal and not exported. This is part of a continuing overall effort to reduce the total number of exported packages and modules to reduce the maintenance burden, and eventually get to the point it will be possible to follow semantic versioning for the root module.
  • Continued code cleanup enabled by the recent consensus changes.

dcrwallet

Released with the v1.7.2 patch:

  • Fixed verification of signed messages.
  • Added walletpubpassphrasechange to JSON-RPC methods. It allows to change wallet’s public passphrase.
  • Added VSP host to the returned ticket information, enabling wallet apps to know which VSP the ticket is managed by.
  • Removed all ticket revoking functionality. Now that revocations are created automatically there is no need for wallets to handle it.

Merged in master:

  • Compatibility updates to the latest dcrd changes regarding missed and expired tickets.
  • Fixed an error in the getstakeinfo command (caused by changes regarding expired tickets).

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

Merged and released with May’s v1.7.2 and v1.7.3 patches:

  • Users can now fetch the VSP fee transaction hash and fee status in transaction details. If the received fee transaction shows confirmed status for an unspent ticket but the dcrwallet thinks it’s not yet confirmed, the app processes and updates the status in the background.
  • Improvements made to Ticket Status and Ticket History views. Now the tabs remember their scroll positions after coming back from the transaction details page. Rows are loaded gradually using the infinite scroll functionality.
  • Removed revoke tickets functionality. Now that revocations are created automatically there is no need for wallets to handle it.
  • Electron (the framework Decredtion is built on) has been bumped to v17.4.2 to fix an issue that prevented dcrwallet/dcrd from launching on macOS 10.15 (Catalina).
  • ~7 bug fixes
Image: Decrediton showing additional VSP info for each ticket.

Politeia

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

Backend changes:

GUI changes:

Changes in the pi-ui library (common UI elements for Politeia and Decrediton):

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.

  • 12 commits representing various code optimizations and refactoring.

dcrlnlpd

dcrlnlpd stands for “DCR LN Liquidity Provider Daemon”.

Meet the the newest project in Decred’s LN ecosystem:

This service allows running a Lightning Network Liquidity Provider in the Decred network.

This LP allows remote clients to request the node associated to the LP to open an LN channel back to the requesting client. This allows the requesting client to have some inbound bandwidth to receive LN payments.

To create the channel, the LP charges some amount, specified as a percentage of the desired channel size. [README file]

DCRDEX

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

User-facing changes:

Internal and developer changes:

  • Allow harness testing on testnet for the ETH client.
  • Simnet harness tests generalized to work with all currently supported assets.
  • Implemented stage 3 of the signature message truncation fix. It is tricky to fix a bug when it is “deployed” on many co-dependent servers and clients, but the devs have a smart 4-stage plan for it.
  • Switched to Bitcoin Cash testnet4 now that it is first class in bchd. Also, added a custom encoder for BCH’s CashAddr addresses.
  • Added methods for calculating the median fee of the most recent block(s) in BTC/DOGE/LTC/BCH. Implemented a cache to prevent repeated scans between blocks, and a fallback if there is not enough data to estimate the fee.
  • Updates to newer modules from btcsuite and go-ethereum.
  • Dependency updates to build with Node.js 18.
  • Encoding now allows for transaction data longer than 65,535 bytes.
  • Generic wait and retry function reworked to gradually “taper off” (slow down) after a few initial frequent attempts.
  • Various bug fixes, dependency upgrades, and optimizations.

While working on DCRDEX the developers have made various contributions to upstream projects: btcd, btcwallet, go-ethereum, neutrino, zcash, and others.

Dev team has started a discussion on renaming DCRDEX and are accepting name and logo ideas.

Probably found a vendor to perform an audit of our Solidity atomic swap contracts. Notably, our contracts are so simple, we’re under their minimum order size. That’s what happens when you’re not trying to extract trading fees and there’s no admin functionality. [@blockchainbuck]
Image: DCRDEX allows to accelerate swaps when the network is busy but you want that trade ASAP.

Decred Wallet (iOS)

GoDCR

GoDCR is a lightweight desktop GUI wallet with integrated staking, privacy, Politeia voting, consensus voting, and more.

  • Default account is now filtered out when privacy is enabled.
  • All signed messages can be verified, the restriction to just personal wallet addresses has been removed.
  • Redirect modals added to debug page (sending to docs.decred.org) and transaction details page (sending to the block explorer).
  • Reworked key event handling to be less error-prone and more efficient.
  • Option to import watch-only wallet added to the splash screen.
  • Privacy is enabled by default when a new wallet is created.
  • Gio updated to latest stable version.
  • A bottom navigation bar has replaced the side bar on screen-sizes below 479px (mobile devices).
  • Fixes to wallet crashes and proposal titles.
  • Bug fixed where incorrect locked balance was displayed in the Staking tab.
  • Fixed builds on Android and FreeBSD.
  • ~6 other bug fixes and some optimizations.

Android and iOS builds of GoDCR already function in some capacity, although there remains a lot of work to polish the mobile/touch UX.

Image: First look of GoDCR running on an emulated mobile OS.

dcrdata

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

decred.org

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

Other

People


Welcome to new first-time contributors with code merged to master in January-March:

We had no Decred Journal for these months but it’s never too late to greet new contributors. Welcome onboard guys!

Community stats as of Jun 1 (compared to May 2):

See June 2022 report on Decred SM performance for a more in-depth look at Feb vs Jun numbers.

Governance


In May the new treasury received 9,407 DCR worth $390K at this month’s average rate of $41.46. 2,950 DCR was spent from the legacy treasury to pay contractors, worth $122K at May’s rate, or $179K at April’s billing rate of $60.62. These payments were to cover both March and April’s contractor invoices.

As of Jun 12, combined balance of legacy and new treasury is 795,673 DCR ($23.9 million USD at $30.09).

A new proposal was submitted by Raedah Group to fund GoDCR, the desktop GUI wallet built in pure Go which will also replace existing mobile wallets as development continues. This proposal requests $250K for 12 months of funding, a greater amount than the previous proposal which was narrowly rejected in October 2021. The extra budget is due to larger number of workers, a longer duration and covering the maintenance of existing Android/iOS wallets. The budget was reduced from the initial $300K in response to some comments.

Four proposals were published on Politeia in May:

  • The proposal from @Exitus to fund Decred Journal and Politeia Digest until December 2022. DJ was inactive for 3 months since @bee announced the halt, until @Exitus took over the lead of the April issue and eventually a full new proposal. A detailed report on the 2021 proposal’s deliverables and finances was published here, with key stats being $24,800 spent out of $39,000 to release 12 issues of DJ and 10 issues of PD. The new budget is capped at $33,000.
  • The proposal from @kozel to fund Decred content and asset translations throughout 2022. A report on Phase 2 informed that only $8,180 out of $33,000 was spent, so Phase 3 will have a lower limit of $20,000.
  • The proposal to fund continuation of the Bug Bounty program until December 2023. For the last 12 months the operating costs were ~$2,100 and ~$1,000 were paid as bounty rewards. The new proposal has duration increased from 12 to 18 months, the budget is split between $5,000 for operating costs and up to $100,000 for reward payments. The leadership was transferred from @degeri to @jholdstock.
  • The proposal from @juliana requested $3,575 to run 3 events at universities in Uganda in 2022, with 30 people expected at each event.

See Politeia Digest issue 51 to catch up on proposal activity between January and May.

Network


Hashrate: May’s hashrate opened at ~345 Ph/s and closed ~115 Ph/s, bottoming at 74 Ph/s and peaking at 381 Ph/s throughout the month.

Image: Anticipated hashrate drop after the mining reward reduction.

Distribution of hashrate reported by the pools on Jun 1: Poolin 55%, ViaBTC 21%, F2Pool 7%, AntPool 7%, Luxor 5%, BTC.com 4%, CoinMine 0.3%.

Distribution of 1,000 blocks actually mined before Jun 1: Poolin 55%, ViaBTC 20%, F2Pool 8%, DsV1GF7 6.5%, BTC.com 6%, Luxor 4%, CoinMin2 0.2%, DsmLNFC 0.1%.

Staking: Ticket price varied between 217-231 DCR, with 30-day average at 223.6 DCR (+9.4).

The locked amount was 8.78-9.07 million DCR, meaning that 62.6-63.9% of the circulating supply participated in Proof of Stake. Both DCR and percentage values are the new ATHs for Decred.

All missed and expired tickets have been revoked, unlocking a total 175,957 DCR from 1,719 tickets (average price 103 DCR per ticket). ~45K of that DCR have moved already, while the remaining ~131K DCR are likely lost due to lost seeds and other reasons. One of the revoked tickets was from an old block 767, around the time when first complaints about the high ticket price appeared.

All new missed votes are revoked automatically, the first one revoked in block 657295.

VSP: On Jun 1, ~6,900 (+120) live tickets were managed by 16 listed vspd servers, or 16.8% of the ticket pool (+0.2%).

Legacy (dcrstakepool) tickets can no longer be voted since May 8 when the chain forked to the new rules. Unlike all other shutdown/stalled legacy VSPs, on Jun 1 coinmine.pl and decredbrasil.com reported that they’re on a current block height and collectively hold 19 live tickets. We are not sure how this is possible and these tickets are not included in the above stats.

Nodes: Throughout May there were around ~185 reachable nodes according to PD Analytics.

Node versions as of Jun 1 snapshot (160 total, dcrd only): v1.7.1 - 41%, v1.7.2 - 20%, v1.7.0 - 12%, v1.7.0 dev builds - 9%, v1.8.0 dev builds - 4%, v1.6.x - 6%, v1.5.x - 4%.

Image: Mixed and unspent % crawling up.

Ecosystem


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


Monde PR’s achievements:

  • Pitched 2 news updates to crypto and finance media.
  • Pitched 1 newsjack.
  • Responded to 3 requests for comments.
  • Secured 2 media interviews.

Secured the following news articles:

Events


Attended:

  • @arij and @khalidesi hosted a Decred booth during the two days of EMEC EXPO (International Exhibition of Digital Transformation) in Casablanca, Morocco, and answered many questions about how Decred works and what problems it solves.
  • Edson Neto talked about Decred at Bitconf in Sao Paulo, Brazil.

Upcoming:

  • Jun 30 - Decred Social Meetup in Chicago, USA. There will be at least one Decred Jacket, sources say.
Image: Edson Neto presenting at Bitconf.

Media


Decred Magazine has been launched by @phoenixgreen to collect all Decred content in one place, give new writers a platform, and archive great past content (Decred Journal included). The latter is valuable since websites and blogs commonly “evaporate” their content over time and it becomes hard or impossible to recover. As of writing, around 300 posts have been imported and 8 authors have explicitly agreed to add their content. Decred Magazine is intended as a replacement for decredsociety.com launched earlier as a pilot project.

Selected articles:

Videos:

Audio:

Discussions


Selected Reddit posts:

  • Weekly Contribution Streaks is a new weekly activity from u/ersfbddfgwe that seeks to break the common mental barrier “I can’t contribute anything because I’m not a developer :(“. The “rules” are simple: just show up and write about anything you did, big or small, with an optional DCR address for tips. There is an ongoing discussion about how to better rank and reward contributions.
  • In Decred Mining Thread miners have been sharing the challenges of mining DCR after their block reward share was reduced from 60% to 10%.

Selected Twitter discussions:

  • Implementing SPV trading wallets for the DCRDEX. What it means and why the devs are focused on SPV. - by @buck54321
  • Implementing a custom workflow for creating Ethereum ERC-20 wallets. What tokens should we do and why? - by @buck54321

Markets


In May DCR was trading between USD 30.00-58.68 / BTC 0.00103-0.00190. The average daily rate was $41.46.

@Applesaucesome is posting technical analysis of DCR, crypto, and the broader market on the new Decred Magazine website, about once a week.

In May, DCRDEX has facilitated the trading of ~74K DCR, equivalent of ~3M USD.

Relevant External


Insider trading in the crypto space is increasingly in the spotlight. The Wall Street Journal featured an article about suspected insider trading around exchange listings on Binance, Coinbase and FTX. The analysis was conducted by Argus Inc based on public blockchain records.

The former OpenSea product manager Nathaniel Chastain, who lost their job over profiting from the listing of NFTs on the OpenSea front page in September, has now been arrested and charged with insider trading by prosecutors in New York’s Southern District. Although the NFTs in question are not the usual securities which insider trading laws apply to, the DA is alleging that Chastain injured his employer (OpenSea) by misappropriating information.

Actor Seth Green lost his Bored Ape NFT in a phishing incident, made even more consequential by the fact that the ape had been set to star in a new show he was developing, White Horse Tavern. In June Green paid a $260,000 ransom to secure the return of the ape, so that the show could go on (without raising a lot of copyright questions over whether the stolen ape’s image could be used).

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

About


This is issue 47 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, Exitus, l1ndseymm, richardred
  • reviews and feedback: davecgh, matheusd, phoenixgreen
  • title image: saender
  • funding: Decred stakeholders