Decred Journal – December 2023
Another month of BUIDL at Decred, in detail.
Dear readers, sorry for taking so long to complete this December issue. In recent months, finding time to work on the Journal has been a big challenge. We are discussing an overhaul of DJ to optimize our efforts. I hope this issue still has unique and useful information for you. Happy reading! – @bee
Highlights of December:
- Two proposals have been approved, for continuing the Bug Bounty program and Video Content creation in 2024.
- Two new mining pools have launched, but data suggests mining is becoming more centralized again.
- Wallet apps and Bison Relay are getting polished for their next releases, Cake integration is ongoing.
Contents:
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.
Developer and internal changes:
- Updated the Docker image to build with Go 1.21.5.
- Marked
cfilter
version 1 messages as deprecated in thewire
package. This is just general cleanup, since V1cfilter
messages are already invalid. V2cfilter
messages have been the standard since DCP-5 activated in Jan 2020.
In progress:
- Introduce P2P mixing messages to the
wire
protocol
dcrwallet
dcrwallet is a wallet server used by command-line and graphical wallet apps.
User-facing changes:
- Only request block notifications after the wallet is fully synced. This solves a race issue where the wallet might try to look at blocks before the underlying dcrd instance was fully synced. This could happen when dcrwallet is started very quickly after dcrd (for example, from within Decrediton). The result would be missed transaction notifications and the wallet's balance to be wrong, requiring a rescan to be fixed.
- When the wallet is syncing in SPV mode, process header batches in parallel. This resulted in a 32% faster sync on average when tested in the real world.
- When the wallet is in SPV mode and the initial sync has already finished, request headers from each newly connected peer. This speeds up re-syncing after initial sync when the local client has been offline for some time (for example, due to an intermittent network connection) by ensuring any and all new headers are requested immediately, instead of waiting until a new block is announced to begin the catchup process.
- Fixed a bug where a restored wallet would miss discovering transactions if those transactions were in the tip block after restoring from seed. This was quite a rare bug, because having more blocks in the chain post-restoration (common case) would prevent the issue from being hit. The bug would've likely only impacted automated dev tests, although rescans would also have fixed the issue for any users who might've experienced the bug.
Internal and developer changes:
- Modify the pruning procedure to prune partial sidechains instead of pruning entire trees. This does not have a functional change yet, but in the future will allow SPV clients to process chains asynchronously.
- Use Go 1.19 atomic types wherever possible. These types prevent misuse by only allowing access through the provided methods and guarantee proper use even if the variables are reorganized in the struct layout.
- If a peer gives the wallet a new block, ensure that block has a known ancestor either in the main chain or a side chain. If no known ancestor exists, this means the wallet missed some blocks and should resync headers. Previously, the wallet only looked for ancestors in the main chain, instead of all side chains too. This caused
getHeaders
to run unnecessarily often, especially for devs simulating large reorgs with side chains. - Fix the gRPC logger, which wasn't correctly removing prefixes when logging message arguments. This error was caught by a friendly passerby who is writing a custom golang linter.
In progress:
- Add integration tests to assert the correct behavior of restoring a wallet under various scenarios that were known to cause missed transactions. These tests make use of the upcoming automation and testing framework for operating a dcrwallet binary through its JSON-RPC and gRPC interfaces.
- Add batched fetching of compact filters to further speed up syncing in SPV mode. This change depends on a related change in dcrd enabling the full nodes to serve the batched data to light SPV clients.
vspd
vspd is server software used by Voting Service Providers. A VSP votes on behalf of its users 24/7 and cannot steal funds.
- Added documentation for how a new VSP admin can get their VSP listed in Decrediton and on decred.org/vsp. This documentation is not aimed at the general user, and therefore has also been removed from docs.decred.org.
dcrpool
dcrpool is server software for running a Decred mining pool.
- Display the connected miners' IP and port on the pool account page. This makes it a little bit easier to distinguish clients from each other.
- Allow dcrpool to gracefully handle errors if dcrd's
GetTxOut
method can't find an output for a given transaction.
Lightning Network
dcrlnd is Decred's Lightning Network node software. LN enables instant low-cost transactions.
- Added automatic closing of channels that have not been reestablished for some time. Normally peers keep their channels healthy by "reestablishing" them. If channel peer is seen online for some time but it is not sending a message to reestablish the channel, such channel is a good candidate for being force closed, because it is likely the remote peer has lost the ability to use the channel (for example, due to restoring the node after data loss without the use of an SCB backup file). By default, if channel's remote counterparty is seen online for 72 hours without reestablishing the channel, it will be auto closed. This should be a reasonable compromise between not closing channels too fast on hubs (that are online 24/7) and ephemeral nodes (that may be online only for an hour or two a day). Integration test has been added to assert the correct behavior.
cspp
cspp is a server for coordinating coin mixes using the CoinShuffle++ protocol. It is non-custodial, i.e. never holds any funds. CSPP is part of StakeShuffle, Decred's privacy system.
- Updated C headers to support the third major version of the fast math library
flint
(released October 2023). Newer versions offlint
may provide performance and other improvements to the CSPP server.
DCRDEX
DCRDEX is a non-custodial, privacy-respecting exchange for trustless trading, powered by atomic swaps.
Changes backported to the next v0.6.x release:
- Fixed a bug where a trade could get stuck after a server disconnect. The full list of affected markets is unknown, but it is known that the bug affected LTC/DCR market and did not affect the DCR/BTC market.
Market maker bots:
- Implemented low-level CEX management functions: deposit, withdraw, and balance tracking. Automatic rebalancing has been added to the simple arbitrage strategy where the bot initiates deposits and withdrawals to/from the CEX to maintain the configured balances. Binance is the first CEX supported by this functionality.
- Modified Binance code to track 1,000 order book entries instead of 20.
General client changes:
- Added display of expired unrefunded bonds on DEX Settings view. When a bond expires it can be refunded to get the funds back.
- Fixed a rare race condition when handling preimage requests.
- Minor UI fixes.
Other:
- Updated dex.decred.org footer to show more supported assets.
In progress highlights:
- Switching to native USDC on Polygon.
- Build environment for creating a standalone Windows desktop app and an installer for it.
- @buck54321 asked on Twitter which coins and features the community would want to see developed in the future, and which USDC pairs are the most wanted.
Cryptopower
Cryptopower is a multi-coin desktop GUI wallet for DCR, BTC, and LTC. It runs in a privacy-preserving light SPV mode without needing full blockchains, supports Decred staking, mixing, voting, and other unique features.
Newly implemented UI elements:
- A page for managing wallet accounts.
- Onboarding pages that help the user with initial configuration after launching the app for the first time.
- Animated swiping of asset cards on the Overview page.
- Updated UI design of governance pages (proposals, consensus, treasury).
- Added "All Wallets" filter on the Transactions page.
- Added advanced options to the Send page, including the ability to send to multiple recipients in one transaction.
Trading:
- Implemented coin conversion (exchange) via Trocador.
- Added intro pages shown when first visiting DCRDEX and CEX features.
- Open trade details when clicking on a recent trade on Overview.
- Added Trade History page.
DEX trading:
- Implemented UI layout for DCRDEX main page, base DEX logic, and the ability to post bonds from the DCR wallet.
Privacy:
- Updated privacy pages. By default, mixing will be off, mixing-related accounts won't be created, and sending from the
default
account will be allowed.
Mobile UI implementation, the following pages have been updated/fixed for mobile screens:
- Common header with wallet name and balance shown on all the wallet's sub-pages.
- Updated the mixer card and recent transactions on the Overview page.
- Governance layouts.
- StakeShuffle pages.
- CEX trading (instant exchange) layouts.
- General Settings and wallet Settings pages.
- Transactions pages (app-wide, wallet-wide, transaction details).
- Staking page.
- Wallet Accounts page.
- Wallet Info (overview) page.
- App onboarding pages.
- Wallet create/restore pages, wallet backup pages.
- Send and Receive pages and quick access modals.
Fixes:
- Fixed an error when visting Treasury page without creating a DCR wallet.
- Fixed mobile UI elements showing in desktop mode.
- Fixed crash when visiting Staking pages after restoring a Decred wallet.
- Fixed request rate limit errors when querying instant exchange orders.
- Other minor UI fixes.
Internal and developer changes:
- Refactoring to remove an unnecessary interface.
- Documented instructions for building for Android and iOS.
In other news:
- Test builds of Android and iOS apps have been submitted to Google Play Store and Apple TestFlight.
Cake Wallet Integration
In progress:
- Integrating libwallet into the build process of Cake Wallet.
- Code branch with most other coins removed has been created to speed up the development process.
- Discussing how to call Go code from Cake's Dart code. The plan so far is to connect the layers using simple JSON strings.
- Discussing which APIs should be provided by libwallet for Cake and Cryptopower.
- First change adding initial Decred screens has been merged in the upstream integration branch. This branch is an intermediate location to test and polish Decred code before adding it to Cake Wallet's
main
branch.
decred.org
dcrweb is the source code for the decred.org website.
- Improved links and text on the Wallets page to help users choose from the four wallet options.
- Updated Portuguese translation.
Bison Relay
Bison Relay is a new social media platform with strong protections against censorship, surveillance, and advertising, powered by the Decred Lightning Network.
Work listed below has been merged to master
towards the next release.
Changes in both GUI and text apps:
- Added a command to change group chat owner.
Changes in the GUI app:
- Added a button to reset all key exchanges (KX).
- Added a button to subscribe to posts straight from the News Feed (saves a few clicks).
- Added transitive KX reset command to user menu.
- Fixed missing Unsubscribe from posts menu item.
Text-based app (brclient):
- Grouped various invite handling subcommands under the
/invite
meta-command. - Fixed client-side message filtering hiding client's own messages.
Internal and developer changes:
- Updated to latest dcrlnd and improved tracking of dcrlnd readiness during startup.
Other
- Updated the Bug Bounty website to show only the top 5 participants and link to a separate page with the full list.
- Fixed DCRDEX version and pinned hash in Decred's custom Umbrel App Store.
People
Community stats as of Jan 14* (compared to Dec 3):
- Twitter followers: 54,595 (+656)
- Reddit subscribers: 12,768 (-5)
- Matrix #general members: 842 (+9)
- Discord members: 1,924 (+62), verified to post: 772 (+3)
- Telegram members: 2,327 (+8)
- YouTube subscribers: 4,670 (+10), views: 247.1K (+2.4K) **
* Due to the late snapshot taken on Jan 14 (Jan 9 for YouTube) the deltas represent ~1.5 months instead of the usual 1-month period.
** Decred's YouTube channel has more than 300 videos now!
Governance and Finances
In December the new treasury received 7,467 DCR worth $119K at December's average rate of $15.89. 8,427 DCR was spent to pay contractors, worth $134K at same rate.
A treasury spend tx was approved with 99.5% Yes votes and 58% turnout, and mined on Dec 19. It had 29 outputs making payments to contractors, ranging from 7.5 DCR to 2,182 DCR. Most of this DCR was likely paid for October and November work. Estimating the average billing exchange rate for the two months at $13.54, the billed amount in this TSpend represents around $114K USD equivalent.
As of Jan 1, combined balance of legacy and new treasury is 870.9K DCR (15.7 million USD at $17.98).
Two proposals were submitted and approved in December:
- Bug Bounty Program 2024 by @jholdstock requested a budget of $105,000, split between $100,000 for bounty payments and $5,000 for administrative costs. In practice, only a small fraction of the requested budget has been used in previous iterations. The proposal reported that the expenses for the last 18 months were $415 paid for bounties and $1,750 for the operations. Overall the program has spent around $11K since its launch in 2019. The proposal has been approved with 98% Yes and a very high 74% turnout.
- Decred Video Content 2024 by @phoenixgreen requested a budget of $71,000 for the creation and dissemination of video content for 2024. This proposal has been approved with 85% Yes and 64% turnout.
One proposal author reported a problem with purchasing proposal credits but it was resolved within a few days. A November issue with the registration fee not getting detected persisted in December, and it is unknown if it affects just one unlucky new account or possibly others.
See Politeia Digest issue 65 for more details on the month's proposals.
PD's publishing workflow has been reworked to improve reach and engagement: the main release channel is now Cypherpunk Times (main link is posted on Twitter and other places), Medium release is now posted in Decred's main publication (instead of the lesser known Politeia Digest publication), and companion Twitter threads are now being produced so that the highlights can be consumed without leaving Twitter.
Network
This section tracks key health metrics of the Decred infrastructure.
Mining
December's hashrate opened at ~5.5 TH/s and closed ~10.2 TH/s, bottoming at 3.8 TH/s and peaking at 11.6 TH/s throughout the month.
Distribution of 1,000 blocks actually mined by Jan 7: miningandco.com 26%, pooltronic.tech 21%, gopool.cash 2.7%, losmuchachos.digital 1.3%, and 49% of blocks were not identified by miningpoolstats.stream.
Staking
Ticket price varied between 234-243 DCR.
The locked amount was 9.74-9.82 million DCR, meaning that 62.0-62.6% of the circulating supply participated in proof of stake.
VSP Staking
The 14 listed VSPs collectively managed ~5,750 (-100) live tickets, which was 14.0% of the ticket pool (-0.3%) as of Jan 1.
The biggest gainers of December were vote.dcr-swiss.ch (+290 tickets or +105%) and vsp.stakeminer.com (+67 tickets or +11%).
Nodes
Decred Mapper observed between 141 and 151 dcrd nodes throughout the month. Versions of 145 nodes seen on Jan 1: v1.8.0 - 65%, v1.8.1 - 27%, v1.9.0 dev builds - 3%, v1.7.x - 2%, other - 3.4%.
StakeShuffle
The share of mixed coins varied between 62.2-62.3%. Daily mix volume varied between 346-541K DCR.
Lightning Network
Decred's Lightning Network explorer saw 220 nodes (+0), 415 channels (-5) with a total capacity of 202 DCR (-4), as of Jan 8. Mind that these stats are different for each LN node.
Ecosystem
Mining Pools
- losmuchachos.digital has been launched, it is a Germany based DCR mining pool supporting the PPLNS payment model with a pool fee of 3%.
- dcr.gopool.cash has been spotted. MiningPoolStats reports that the Brazil based pool uses the PPLNS model with a fee of 1%. DCR is one of the 15 coins supported by the pool.
- There are (at least) 5 public mining pools now, all running dcrpool software.
Exchanges
- All trading activity on Bittrex Global has been terminated according to the shutdown plan published on November 20th. If our interpretation of chain activity is correct, the amount held at Bittrex when the trading stopped (December 4th) was ~17.5K DCR, and it looks like withdrawals have been working smoothly.
- MEXC has been added to decred.org Exchanges list after DCR withdrawals were confirmed to work. The exchange works over VPNs and allows some trading without KYC. MEXC added spot DCR/USDT market back in June 2019 and 5x leveraged DCR/USDT pair in December 2020, but there was little community feedback to confirm it is working.
- MEXC attracted some controversy after several users reported seizure of funds, account freezing, and withdrawals getting blocked. MEXC denied all claims in their response. Two common patterns in the reports were very profitable leveraged trading and large withdrawals, both getting flagged as "abnormal" activity by MEXC. We cannot verify if the reports are true, but it's a good reminder to always do your own research and be very careful when dealing with custodial services.
- DCR withdrawals on Poloniex and HTX continued to be suspended for a total of about 1.5 months and have not been fixed in December, based on the information published on their support sites and one user report in the #trading channel. All withdrawals, including DCR, were suspended in November in response to the two hacks on these exchanges.
- Indian financial authorities announced the decision to block URLs of 9 offshore exchanges for not complying with local AML regulations. If the block will be implemented, accessing DCR markets on Binance, KuCoin, and other exchanges from India will become more difficult.
Wallets
- Users of hardware wallet Ledger fell victim to a supply chain attack on December 14th. A compromised npmjs.com account of a former Ledger employee was used by an attacker to upload a malicious version of the Ledger Connect Kit library used by many DApps, which tricked EVM DApp users into signing transactions that drain their wallets. The vulnerability was patched quickly, but it took around ~5 hours for the fix to propagate. The exploit was limited to third party DApps which use the library, it did not affect the integrity of Ledger hardware or Ledger Live. Ledger tweeted that around $600K worth of assets has been affected and promised to make victims whole if they claim refunds (this process requires ID verification). To the best of our knowledge, no DCR wallets were affected by the exploit.
- Guarda has been removed from the list of known-to-work wallets at decred.org after several users complained that DCR was not working for 3 months. Timing suggests Guarda's DCR wallet stopped working around September 2023 because they failed to upgrade to Decred v1.8.0 (released June 13th, 2023) and missed the hardfork (completed September 1st, 2023). A person from Guarda confirmed that DCR is still considered a supported asset, but they're working on "some issues post-Decred's network upgrade". Until that is fixed, Guarda users can export the private key and import it in another wallet like dcrwallet or Exodus.
Other news
- Crypto lending service CoinRabbit.io has added DCR as a collateral asset.
Join our #ecosystem chat to get more news about Decred services.
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 Vanguard
Vanguard ran two different DCR giveaways in an attempt to spread outreach: A Meme Contest and a New Year's giveaway.
Other notable activities:
- Reached out via Twitter/e-mail to Alchemy Pay for Decred integration, it is a service that performs crypto purchases with fiat payment cards.
- Applied and reached out to Biconomy, a Canada based exchange with a US license.
- Applied to Crypto.com for a listing.
The 2023 proposal concluded on December 31st. A new proposal for 2024 was developed that includes contributor tiers, funds for ads on X, increased discretionary funds for things like giveaways and other experimentation, while keeping things from the first proposal like DAO funded tools.
Cypherpunk Times
The content creation process at Cypherpunk Times is undergoing changes to become more open to the community. The public #writers chat is now being actively used to plan and review upcoming articles, or discuss the overall direction and operation of the site. The process of selecting and creating content is being standardized and documented to guide existing and future authors.
Engagement stats for December:
- Total number of articles on CT: 606
- Newsletter subscribers: 114
- New CT posts and newsletters sent: 18
- Social media followers across all platforms and accounts: 1,206
- @decredsociety Twitter: followers - 1,007, posts - 48, tweet impressions - 47.9K, likes - 992, retweets - 136
- @cypherpunktimes Twitter: followers - 199, posts - 47, tweet impressions - 13.5K, likes - 230, retweets - 53
- Posts by project for December: Zcash - 1, Decred - 9, Other crypto news - 4
Media
Articles
Decred:
- Cypherpunk talk with Michael from the Zcash community! by @Joao
- Decred vs Polkadot: Overcoming challenges by @Joao
General crypto articles on Cypherpunk Times:
- Cypherpunk Times Monthly Roundup (November 2023 edition) by @tallamericano
- Navigating the exchange listings jungle: A comprehensive guide on how to get your cryptocurrency listed (2/2) by @tallamericano
- Crypto in view: Bitcoin community split and a recap of the week's crypto events by @BlockchainJew
- Bull market? Maybe, but you have to prepare! by @Joao
- Cryptocurrency unveiled: Analysing core principles, distortions, and impact (1/2) by @tallamericano
- Cryptocurrency unveiled: Analysing core principles, distortions, and impact (2/2) by @tallamericano
- More than 300 memecoins emerge after Elon Musk curses advertisers by @Joao
- How is the crypto community preparing for a spot Bitcoin ETF? by @BlockchainJew
Videos
- Decred - Money Evolved: Development and community updates by @Exitus
- Building a decentralized workforce - Moving Forward by @phoenixgreen - also as a text post
- Non-custodial staking - Moving Forward - also as a text post
- DECRED (DCR) - GPU mining - BLAKE3 - A step-by-step guide by HashOnTube
Live streams:
- 2023 the year of encroachment - State of the Market by @phoenixgreen and @Exitus feat. @h3la1
Audio
- 2024 - The year crypto goes fully mainstream? - Twitter Space hosted by @Tivra talking about ETFs, AI, working in crypto, delisting and DEXes, and more.
Non-English content
- Peer-to-peer transactions on Decredition - a 10-minute guide by @arij (Arabic)
- Decred Journal October got a total of 3 new translations to Arabic (@arij), Chinese (@Dominic) and Polish (@kozel). Thank you guys for translating DJ for so long!
Random
- DCR highlights pitch by @Exitus
- DCRDEX pitch/update by @buck54321
Custodial wallets will require KYC/AML in the U.S. Full node wallets are not feasible for normal users for $BTC or $ETH. Others are questionable too. Decred DEX has struck a balance, using SPV technology to reduce 100s of GBs to < 4GB for BTC, with good privacy and sync times.
For $ETH, there's a no-privacy culture based on infrastructure providers (infura etc.). We've improved upon this slightly by enabling multiple infrastructure providers simultaneously. Full information about wallet activity would require collaboration between providers.
Our $DCR, $LTC, and $BCH wallets are also SPV, so good privacy and sync times there too. #Polygon has a multi-provider wallet like $ETH. All other wallets are full node, which is fine, since they are not Bitcoin, though $ZEC full node is still challenging.
Financial self-sovereignty MUST be an option for everybody. Decred DEX is battling to keep it possible. We've still got work to do, but is any other project sticking to blockchain principles like Decred DEX?
Did I mention that our wallet has new privacy options? We've added #Decred mixing, fully integrated with trading so that swap redemptions are re-mixed, adding to the (already huge) anonymity set. #Zcash is going shielded-by-default too, unified addresses and all. [@blockchainbuck on Twitter]
Art and Fun
- Someone has made an Ordinals inscription of the Decred Technical Brief on the Bitcoin chain
- An unhinged Twitter thread with LukeDashjr about Bitcoin's high fees and Decred's (lack of) a governance solution
- Decred the fluid blockchain by @OfficialCryptos
Markets
In December DCR was trading between USDT 14.12-26.50 and BTC 0.0032-0.00063 on Binance. Using the weighed daily close data from Coin Metrics the price ranges were USD 14.40-22.66 and BTC 0.00033-0.00052. The average daily rate as calculated for contractor payments was $15.89.
Relevant External
Ledger's Connect Kit library, used heavily by DeFi applications like SushiSwap, Balancer and Zapper to allow users to interact with their wallets, was hacked when a staff member's credentials were compromised and malicious code was introduced to the GitHub repository. This allowed the hacker to steal $484K from users who accessed their wallets during the critical 2-hour period before the red flag was raised and many of the DeFi protocols using the library paused operations amid a general panic about the safety of any Ethereum transaction made on the day of the attack.
As of Jan 1 2024 new regulations come into effect which treat digital assets as cash in the sense that receiving more than $10,000 "in one transaction (or a series of related transactions)" will mandate reporting the transaction event and the identity of the sender to the IRS on a Form 8300. This was a provision of the Infrastructure Investment and Jobs Act ("Infrastructure Act") that was passed in 2021, and it is widely seen as presenting a problematic increase in the level of admin work involved in receiving cryptocurrency as a business.
Tether has started freezing the assets held by wallet addresses sanctioned by OFAC, and has also blacklisted the contract address for Tornado Cash. Tether has also been happily "onboarding" the US Secret Service and FBI to their platform, while bragging about the 435 million USDT it has so far frozen at law enforcement's behest.
Binance has been running half-day courses in France that introduce people to blockchain concepts and software like Metamask, and get them to sign up to Binance to receive their "NFT diploma", and in some of the poorer regions which they have targeted attendees are being forced to sign up for this "education" as part of a state-sponsored retraining effort. This is one of the outcomes of French PM Macron's relatively welcoming attitude towards the company which saw Binance pledge to invest 100 million euros in the country's burgeoning crypto scene in 2021, as detailed in this article.
That's all for December. Thank you for reading!
About
This is issue 66 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, editing, publishing: bee, bochinchero, Exitus, jz, kozel, phoenixgreen, richardred, zippycorners
- title image: Exitus
- funding: Decred stakeholders
Comments ()