Decred Journal — February 2021

Richard Red
Decred
Published in
17 min readMar 14, 2021
L2 by @saender

February’s highlights:

  • v1.6.1 software was released, it adds bug fixes and UX improvements to the 1.6 release
  • PoW and PoS upgrade thresholds were met, but not before a ticket voting policy which forces miners to upgrade was released
  • PoS participation reached new heights, and the percentage of mixed DCR surged from 31% to 38%
  • Kohola, a front-end for dcrwallet geared towards expert users, was introduced and released
  • The Decred Journal and Open Source Research 2021 proposals were approved by stakeholder vote

v1.6.1 Patch Release

The new release includes bug fixes and UX improvements for dcrd, dcrwallet, Decrediton, and dcrdex. Most changes have been addressing issues with the new VSP staking and how it plays together with mixing. Importantly, it allows Decrediton users to set consensus vote choices with both legacy and new VSP.

Get the full release notes and downloads here, or read the compressed overview of changes in the sections below. As always, respect the signature verification ritual to ensure you’ll run exactly what was packaged by the devs.

There are still some rough edges in the new VSP + mixing combo, check this post by u/mowmowbeans to learn about the workarounds.

To get up to speed with Decrediton updates check @Exitus’ quick mixing and staking video tutorials.

Vote on the New Consensus!

Voting to activate the new decentralized treasury has started on Mar 12 and will run until Apr 9.

To get informed, read the original proposal, the technical spec, or watch the explanation by @matheusd (starts around 14 min).

If you haven’t set your voting preferences yet, please do so now so your desired vote is cast when any of your tickets vote. The correct id for the new vote is treasury.

To watch how the voting unfolds see the voting dashboard or the visualization at dcrdata.

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

The v1.6.1 patch release shipped the following changes:

  • notification logic modified to force proof-of-work miners to upgrade so that voting on the new consensus changes can commence
  • fixed a rare issue where connections might not be reestablished after a network outage

In development towards the next release, this month’s highlight is the addition of a UTXO cache that cuts initial blockchain sync time by ~33% at the cost of some extra memory. It also significantly speeds up block processing during normal operation and reduces wear and tear on the storage medium by allowing entries that are created and spent between flushing intervals to avoid being written at all. UTXO cache is a required step towards multi-peer parallel block downloading.

Another highlight is the introduction of Age-Partitioned Bloom Filters. APBF is a lookup device that can quickly tell if it contains an element. It can track a lot of data while using little memory, at the cost of a controlled rate of false positives. Unlike classic Bloom filters, it can handle an unbounded amount of data by aging and discarding old items. The motivation for adding APBFs to Decred is to replace the LRU (least recently used) cache used to continuously track what data other peers are known to have. For a concrete example, the memory to track addresses known by 125 peers is reduced from ~200 to ~5 MiB when using APBFs. Also, the package will be useful for other projects like wallet, DEX, mobile wallets, etc. Read the details in full glory in the PR and the README.

Other merged work:

  • primary operations in apbf package made more than two times faster with smart bit-level math
  • tracking of recently confirmed transactions and addresses known by peers switched to use APBFs
  • tracking of recently rejected transactions also switched to APBFs, with extra benefits of lowering bandwidth usage in high rejection scenarios while simultaneously increasing robustness against malicious peers
  • reject message deprecated towards its eventual removal in future versions (read this for a list of privacy and correctness issues with this message)

dcrwallet

Changes shipped with v1.6.1 patch:

  • new gRPC method to set ticket vote choice at the associated VSP via the new vspd protocol (used by Decrediton)
  • when the account only has a single output, create an extra transaction to make enough outputs for a VSP ticket purchase, and use the resulting fee output (fixes the “not enough utxos” error)
  • skip unpublished transactions when selecting outputs and clear unpublished status when the tx is mined (fixes certain double spend cases)
  • consider tx fees when mixing to avoid unmixable outputs
  • fixed outputs from unpublished transactions being included in the spendable balance
  • fixed a chance to pay a very high fee during mixing (this was a regression between v1.6.0 and v1.6.1, i.e. did not affect any release)
  • updated salsa20 and blake2b dependencies to prevent possibility memory corruption
  • return error from signrawtransaction if the transaction has no inputs
  • save mixed output transactions and watch outputs

Decrediton

Changes shipped with v1.6.1 patch:

  • setting consensus vote choice implemented for vspd tickets
  • disable some buttons while mixer, auto-buyer or ticket purchases are running to avoid possible issues
  • disable the auto-buyer when switching between legacy and vspd modes to prevent unexpected ticket purchases
  • add sanity checks for ticket purchasing to prevent malformed legacy VSP tickets
  • support for filtering transactions by multiple criteria
  • improved layout of staking stats and tx history on small screens
  • show different icons for mixed and unmixed accounts
  • show a meaningful message explaining why sometimes fewer tickets are purchased than requested
  • show a timeout error when not receiving VSP status response within 5 seconds
  • show unconfirmed balances on Overview and Accounts
  • better names for tabs and labels
  • added Traditional Chinese translation
  • continued migration to functional components using hooks and CSS modules
  • increased automated test coverage
  • 22 bug fixes

Merged in master:

  • migrated to grpc-js dependency to reduce build time and binary size
  • apply UI language change to menu bar and context menu without restarting Decrediton
  • fixed CPU-hungry animations on Privacy pages
  • 3 other bug fixes

Politeia

  • end-to-end tests for admin account

CMS:

  • code stats for subcontractors listed in the invoice
  • show more data by default to prevent missing new invoices
  • UI fixes

Most of the work has again been focused on the new storage backend. To differentiate Decred implementation from raw tlog a new term “tstore” was introduced, meaning a combination of Trillian transparency logs and the key-value store holding the actual data. The tstore pull request has accumulated 438 commits since Apr 2020 and is changing more than 40K lines of code.

Most recent backend changes concerned how data is stored in unvetted and vetted states. On the frontend, the devs are adjusting the GUI to backend API changes.

I’m pretty excited about the new plugin architecture. It makes it possible to spin up different Politeia applications without needing to write any code, using just config options. Once the same plugin architecture is added to politeiawww for user features, the whole thing will be configurable. (@lukebp)

dcrpool

  • support for reverse proxy deployments
  • various improvements for the Stratum mining protocol
  • fixed hash calculation spanning multiple cycles

dcrlnd

  • check that correct wallet account is used when unlocking (this allows to present a meaningful message in Decrediton)

cspp

  • validate that clients pay enough transaction fees (and close a DoS vector)
  • remove timed-out clients to prevent possible server hangs
  • isolate state for different runs to prevent possible aborted mixes

dcrdex

Patch v0.1.5 is out fixing a few rough edges:

  • handle orders that have somehow lost their funding coins
  • make client init and redeem requests asynchronous to not block actions that could occur in parallel
  • retry contract audits when resuming trades on startup and login, to prevent matches from being incorrectly revoked
  • blake2 dependency updated to prevent silent memory corruption

Get the release notes and downloads here, or grab dcrinstall and run dcrinstall --dcrdex to download, verify and configure the programs automatically. In any case, verify downloaded files to ensure they came unmodified.

Merged in master towards the v0.2 release:

  • estimate low, high, and max possible fees during swap and redemption transactions to offer additional clarity on fees instead of just showing the worst-case value
  • write a backup file prior to upgrading the database
  • switch client from btcsuite’s to Decred’s rpcclient because the latter supports request cancellation
  • move wallet locking code during shutdown to a better place

You can track what’s coming on the milestone pages for 0.2 (server market data, UI+backend improvements) and 0.3 (SPV support, BCH pair, Decred 1.7).

dcrandroid

  • updated French translation
  • codebase formatting and cleanup
  • UI tweaks

dcrlibwallet base library updated to restart sync when necessary and support external loggers (for easier embedding in other software).

dcrios

  • allow users to create watch-only wallet from the splash screen (without creating a new regular wallet first)
  • added debug page to view the connected peers’ details
  • UI and translation tweaks

godcr

dcrros

  • updated to comply with the Rosetta spec version 1.4.10
  • added a full end-to-end test suite to assert correct dcrros behavior, including running the required Data and Construction API tests on a local simnet that exercises a large number of situations actually found on chain

docs

Kohola

@peter_zen shared:

Announcing a project I and @bgptr have been working on last year: kohola

Kohola is a dcrwallet frontend I started for my own needs which weren’t covered by Decrediton. It’s not feature complete yet but I’ve been using it as my production wallet. Work on it stalled some months ago due to other priorities but I thought I’d share it in its present state as other peeps may find it useful. In case it proves some usefulness it would be great to finish it.

From the readme, this wallet is intended for expert users and offers features like encrypted configuration, solo staking support, coin control, and more. The app is written in Go and TypeScript using React and Redux frameworks. Notably, Kohola means “whale” in Hawaiian.

Other:

  • u/interfux announced Debian/Ubuntu packages and an unofficial APT repo for easy installation and updating of Decred command-line programs. Feedback is welcome, especially from experienced packagers to push it further and ultimately publish in official Debian/Ubuntu repos.
  • @dezryth shared a Python program that will send push notifications to your mobile device when your tickets vote
  • most projects are now building and testing with Go 1.16

People

Welcome to new first time contributors with code merged to master: @bochinchero (dcrlnd) and @fintechtrades (dcrdocs)!

@arij was interviewed on the Decred in Depth podcast, see Media.

Community stats as of Mar 1:

  • Twitter followers: 42,922 (+1,121)
  • Reddit subscribers: 10,559 (+358)
  • Matrix #general users: 382 (+38)
  • Discord users: 1,444 (-473) — pruned inactive users
  • Telegram users: 2,518 (+90)
  • YouTube subscribers: 4,420 (+100), views: 175K (+6K)
  • LinkedIn followers: 978 (+16)
  • GitHub dcrd stars: 584 (+9), forks: 252 (+3)

Notable changes detected for the tracked accounts:

  • Twitter, Reddit, and YouTube listed above all got a higher than usual increase in following and views
  • CoinMarketCap page got another +3K watchers to 29K
  • DecredKorea and DecredNederland Twitter accounts have emerged in Jan and started tweeting in Korean and Dutch
  • DecredDEX has joined decredexplorer and now we have two product-focused Twitter accounts
  • @Checkmate gained +30% followers (to 5K) and posted 1.2K tweets at a crazy rate of ~41/day
  • ConsensusRough got +18% followers, to 438

Governance

In February the Treasury received 10,444 DCR and spent 3,010 DCR (actually payments didn’t go out until Mar 2). Using February’s daily average DCR/USD rate of $113.76, this is $1.2M received and $342K spent. At January’s average daily rate of $54.25, the USD figure billed for past work is $163K. As of Mar 3, the Treasury balance is 653,000 DCR (97.2 million USD at $148.86).

After the record-breaking turnout for two proposals at the start of Feb (covered in the last issue), the rest of the month was relatively quiet, with two further proposals being approved.

  • The Decred Journal 2021 proposal was approved with 92.4% Yes votes and turnout of 51%. The max amount of funding requested for the year is $39,000, and it also covers Politeia Digest and all of the associated design work. Thanks to all the stakeholders who voted for the Journal’s first solo proposal! Don’t hesitate to share your thoughts on Reddit, GitHub or Matrix, especially if you voted No (we can survive the criticism).
  • The Open Source Research 2021 proposal from @richard-red was approved with 75.4% Yes votes and turnout of 60%. The requested budget has increased to $40,000, and $9,150 of this is set aside for the expansion of @bee’s open data collection initiative.

@ammarooni posted a reflection on his book proposal and is looking for some honest feedback.

Network

Hashrate: February’s hashrate opened at ~428 Ph/s and closed ~420 Ph/s, bottoming at 278 Ph/s and peaking at 537 Ph/s throughout the month.

Pool hashrate distribution as of Mar 1: Poolin 36%, Antpool 34%, F2Pool 8%, Luxor 2%, BTC.com 1.5%, Huobipool 0.8%, Coinmine 0.08%, UUPool 0.03%, unknown 18%.

Instant snapshots are too volatile, so compare that to how 1,000 blocks (3.5 days) mined before Mar 1 have been distributed: Antpool 41%, Poolin 29%, easy2mine 11%, F2Pool 6%, Luxor 1.5%, Huobipool 0.4%, unknown 11%.

UUPool’s reported hashrate has dropped from the top spot to the bottom and it looks like its miners have migrated to Antpool and F2Pool. New unidentified addresses are also showing up.

Staking: Ticket price varied between 154.3–220.4 DCR, with 30-day average at 181.7 DCR (+8.5). The locked amount was 6.74–7.30 million DCR, meaning that 53.6–57.7% of the circulating supply participated in proof-of-stake.

It looks like we are breaking a record every month in terms of both ticket price and participation!

Nodes: Throughout February there were around 220 reachable nodes according to dcrextdata. Average version distribution from dcr.farm: 35% dcrd v1.6.0, 10% dcrd v1.6.1, 10% dcrd v1.5.2, 7% dcrd v1.5.1, 5% dcrd v1.6 dev and RC builds, 4% dcrd v1.7 dev builds, 2% dcrd v1.5.0, 1.5% dcrd v1.5 dev and RC builds, 9% dcrwallet v1.6.0, 4% dcrwallet v1.6.1, 3% dcrwallet v1.5.1, ~9% others.

charts.dcr.farm has been shut down due to low demand and high operating costs to keep it running in a sustainable way. We thank the operators for all the network insights shared over the years. dcr.farm’s legacy and new VSP are still operational.

The share of mixed coins has grown from 31% to 38% in Feb alone, possibly thanks to the GUI for it added in v1.6. @CoinShuffle_BOT posts mixing stats daily.

Decred’s Lightning Network has seen 30 nodes (+2), 56 channels (+9) with a total capacity of 16.8 DCR (+8.5), as of Mar 1.

@matheusd shared some ticket splitting stats: over almost 3 years 2,679 split tickets were purchased at an average rate of 81/month, meaning that roughly 0.2% of tickets are being split. This was discussed in the context of v1.6 and the new vspd staking where ticket splitting is not supported. A new splitting/matching protocol and a rewrite of both server and client are required to make it work with vspd, which is unlikely to happen at this time given the low demand.

Integrations

Three VSPs have enabled support for the new vspd staking: decredvoting.com, ibitlin.com, and coinmine.pl. We now have a total of 11 vspd instances and 17 legacy VSP instances.

The VSP listing was updated to show vspd tickets along the legacy ones. As of Mar 1, vspd servers held 4.4K live tickets, or 11% of the target ticket pool. Legacy VSP servers held 6.5K live tickets, or 16% of the target.

SwapSwop.io exchange platform came to say hi on r/decred and answered a few questions about liquidity sources, jurisdiction, and their KYC processes. DCR was listed in Sep 2020.

A new #services public chat room welcomes everyone to collect information about the growing Decred ecosystem (exchanges, payment processors, VSPs — anything).

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

Several Decred contributors answered all kinds of questions in Decred AMA on r/CryptoCurrency. The thread got 171 comment and 140 upvotes.

@elima_iii has started the second season of the Decred in Depth series, featuring new guests and more community engagement. Questions to guests are collected on Twitter (even more for the @matheusd episode), video of both host and guest is available and YouTube is the primary location now.

@pavel shared an update for the withDecred proposal:

Due to the massive price action in last weeks, I’ve suspended the giveaways as it seems no longer necessary to generate social buzz. At the time of activity, @withDecred Twitter account had around 100K impressions monthly and generated some good conversations (and some shilling as well). (…) I’m now thinking how to go forward from here with WithDecred activities (web + Twitter), for the moment I’m supporting community-created content. If you have some suggestions, feel free to ping me here or on Twitter.

Monde PR’s achievements for February:

  • created/pitched 3 stories to finance and crypto publications
  • responded to 3 requests for comments
  • secured 2 media interviews

Events

Attended:

  • Feb 3 — Decred 5 Years Giveaway — Internet. Decred in Spanish team organized a sophisticated giveaway to mark Decred’s 5th anniversary. A total of $130 in DCR was awarded for various tasks like retweets, answering questions (after digging some dcrdata), answering “what do you like about Decred?”, or competing in a meme generation. This activity engaged more than 60 people, generated over 57K Twitter impressions, and onboarded 100+ Twitter followers and 40+ Telegram users. Details in the report.
  • Feb 6 — Blockchain, AI, and Big Data — Casablanca, Morocco. @arij and OMJD organized an event to mark Decred’s 5th anniversary. There were 3 talks on machine learning, big data, and blockchains. In the latter, @arij talked about how Decred blockchain was used in Brazil municipal elections. 20 people were expected but 40 showed up, and ~500 watched it live. In the end, there was a small celebration of the anniversary (involving… hold on).
  • Feb 9 — Decred intro and features — Internet. @michae2xl was invited by Monnos (Brazilian exchange that listed DCR in January) to introduce Decred in an Instagram live. Together with Rodrigo Soeiro (CEO) they have addressed new people in the space, showed Decred’s products, and discussed their potential.
  • Feb 20 — Alternative Consensus: Let’s Talk PoS — Internet. @elian talked all things Decred with Criptodemia and Kevin Negocios from Veinte Exchange of Venezuela in a 1+ hour livestream.

Upcoming:

  • Mar 12–14 — Hackathon Nayarit 2021 — Internet. Decred in Spanish will sponsor the hackathon organized by the Ministry of Education of Nayarit. To prepare participants, the Spanish team hosted Blockchain Education training week, consisting of 5 webinars.

Media

Selected articles:

  • Decred v1.6 with co-founder & project lead, Jake Yocom-Piatt (coinscrum.com) — a Jan video reworked into an article, compares the new treasury code to “minimally complex hardwired smart contact” and explains key features of v1.6 in simple terms
  • DCRDEX was listed among the top DEXes to watch in 2021 in the January research report by Xangle

Videos:

  • Decred News Update — Feb 14th — Massive 1.6 release, vote for $75M DAO, LN, privacy, & more! by @Exitus (youtube)
  • Decred Privacy Tutorial: Mix your coins by @Exitus (youtube)
  • Insaf Nori interview Decred in Depth (live) by @elima_iii (youtube)
  • Being your own bank by Society Decentralised (youtube)
  • Decred Price Analysis — 24th February 2021 by Brave New Coin (youtube)

Audio:

  • Rough Consensus 17: Spidey reunion. The long lost co-host @mr.black rejoins the pod to talk about crypto and finance. (libsyn)
  • past Decred in Depth episodes (up to 33rd) have been uploaded to the main YouTube channel

Art and fun:

  • @karamble’s Decred v1.6 digital announcement clip (try spotting “taco”!)
  • glitchy and loud 5th anniversary clip by @New_Copernicus
  • the ultimate explanation of how atomic swaps work by @richardred
  • The Rewards by @AGNFAB1
  • “I wish to be irrisistible to men!”
  • introducing Decred Pączki (doughnuts)

Translations:

  • Decred News Update Jan 24 — with Spanish subtitles by @francov_
  • Building a transparent future with the Decred blockchain — in Arabic by @arij and @abdulrahman4
  • Decred Journal January 2021 was translated to Arabic (@arij, @abdulrahman4), Chinese (@Dominic), and Spanish (@francov_). Thank you all for spreading Decred news!

Community Discussions

There have been more attempts to scam people recently. Please remember that real developers and admins will never DM you with offers of free money or technical assistance. Pay close attention to user display name and user ID you chat with to avoid smart ways to impersonate. Tell your friends to stay vigilant, too.

Selected Reddit posts:

  • an idea to rename tickets to “OG tickets” and call its 1/10th part a regular “ticket”
  • one of the price discussions became unusually intelligent and touched the topic of recruiting (we keep saying it: not only developers are wanted)
  • DCRDEX vs Bisq
  • a few interesting facts about seed words and metal wallets

Selected Twitter discussions:

  • @jy-p reminds why we are still here
  • another great thread from @cburniske

As someone who’s followed @decredproject since 2016, the strength of its community, fundamentals, and market traction thus far in 2021 has surprised even me. (@cburniske)

Markets

In February DCR was trading between USD 66.95–169.90 / BTC 0.0018–0.0030. The average daily rate was $113.76.

@Checkmate posted a mega on-chain thread with many (all?) indicators going ATH. Feb 9 prediction “I would be surprised if the train slows down from here, it’s just not in character!” was correct.

Unusually large bids have been observed on Binance.

DCRDEX has traded 390K DCR and 1K BTC in February, averaging to 14K DCR and 36 BTC daily. The price varied between 0.0019–0.0030 with an average of 0.0026.

Relevant External

Yearn Finance was February’s largest DeFi Fail, with a flash loan attack exploiting its users for $11 million. In an interesting development for this kind of attack, most of the exploited funds were paid in fees to various liquidity pools and staking services, with just $2.7 million ending up in the attacker’s wallet, and the rest presumably fuelling the DeFi economy. The victims of the attack have been compensated from the new pool of YFI Treasury funds that were recently minted — within 4 days of the hack the Yearn team were able to mobilize 9.7 million DAI to distribute, and no token voting was required. YFI and the Treasury are currently under the direct control of the Multisig holders, and that “empowerment” is being extended until May 24.

Yearn Finance is also changing up its Treasury and governance funding model significantly, major changes include scrapping YFI staking because of its uncompetitive yield and instead switching to a buyback model and allowing YFI holders who have deployed their tokens in a liquidity pool to also use them to vote.

Bitcoin developers are in the process of deciding how the Taproot upgrade should be activated, with the point of contention being whether the Bitcoin Core update should ship with a setting that has it activating at the end of the signalling period regardless of whether the supermajority threshold is met (like the User Activated Soft Fork) or take a more cautious approach and avoid forcing the issue initially. Miner signalling for the month to Mar 2 showed 89% support for Taproot from pools according to their hashrate. Additionally, Poolin contributed a consensus effort compiling pools’ sentiment and preferred activation methods.

The New York Attorney General reached a settlement on charges against Tether and Bitfinex which saw the company pay $18.5 million fine but avoid having to admit to any wrongdoing.

The Central Bank of Nigeria has moved to remind banks that “dealing in cryptocurrencies or facilitating payments for cryptocurrency exchanges is prohibited” and instructed them to close the accounts of all people and entities who trade in cryptocurrencies.

The US Federal Reserve experienced an issue with its inter-bank transfer system which impaired service for hours. This happened soon after US Treasury Secretary Janet Yellen had warned that Bitcoin is “extremely inefficient” and poses risk to investors.

@notsofast urges everyone to learn from his mistakes that have led to losing ~$100,000 in crypto in a security breach: get a good password manager, use a hardware wallet, isolate dangerous browser extensions like Metamask in separate browser profiles or devices.

About This Issue

This is issue 35 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.

You can submit a story here to be considered for the next release. Feedback and contributions are always welcome.

Credits (alphabetical order):

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

--

--

Richard Red
Decred
Editor for

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