Dusk - Announcement Channel
2.65K subscribers
116 photos
3 videos
663 links
Download Telegram
Join us in just over an hour for an AMA with the builders behind our hugely successful ITN!

We also have $DUSK to give away - $25x4 for the best questions asked during the AMA 🎉

See you at 4PM CET
https://discord.com/events/847466263064346624/1212362598625050664
# Introducing Fast Syncing for the ITN Installer 🚀

@everyone,

We're excited to announce a significant upgrade to the ITN installer, aiming to make node syncing faster and more efficient than ever before! This update introduces a new feature that allows for quick syncing of a node by leveraging the state from Dusk's archival nodes.

TL;DR 📝

:pencil: This upgrade is optional and only really needed if you needs to sync your node. If you choose to upgrade, the node will stop, so if your node is sync'ed up and running fine, you don't need to update. If instead your node is syncing up, or you need to reset for whatever reason, this upgrade is for you.

Upgrade The Installer 🆙

Upgrade your ITN installer by following the [installation guide](https://docs.dusk.network/itn/upgrade-node/).

How to Use the New Fast Sync feature
If you need to sync up your node, please [follow these instructions on the ITN project page](https://github.com/dusk-network/itn-installer/blob/main/README.md#fast-syncing-with-archival-state-download).

What's In The Update ⚙️
This upgrade provides a command within the ITN installer that facilitates faster node syncing. By downloading the state directly from one of Dusk's archival nodes, nodes can quickly catch up to the current state, reducing downtime and improving network participation efficiency.

Key features of this update:
- Fast Syncing Capability: A new command /opt/dusk/bin/download_state is introduced for rapid state downloading and updating.
- Non-Intrusive Upgrade: The upgrade process does not require stopping the node, ensuring uninterrupted network participation.
- Optimized for Efficiency: Designed to significantly cut down the time needed for nodes to sync with the network.
Audio
Here is the recording from our AMA yesterday.

Will look to add to Youtube but that may take a little longer.

It was a great call with Emanuele, Hein, and Seppia, where we discussed:
What Dusk is and why it is needed in both blockchain and finance
How ITN has been going (and why it's going so well!)
What you can look forward to in the future with mainnet and beyond

Enjoy!
Mitigation Of Stuck Nodes And Upcoming Stake Contract Upgrade

We are aware that some of the node-runners have been experiencing problems with their nodes, resulting in them being stuck at certain block heights. Below is a concise overview of the issue, our immediate mitigation plan, and information on the upcoming stake contract upgrade.

TL;DR

__You must follow this procedure on only if your node is stuck__

Run the following commands:

1. sudo /opt/dusk/bin/download_state.sh 369876
2. service rusk restart

> If you encounter an error (e.g. no such file or directory) when running `download_state.sh` please upgrade by following the [Installation Guide](https://docs.dusk.network/itn/upgrade-node/).

Upon restarting, your node should sync up with the correct branch.

> If you encounter a permission error, it might be because you already tried to sync in the past. Removing leftover from previous updates might help: sudo rm /tmp/state.tar.gz

The Issue
Sometimes nodes accept a block at a higher iteration and diverge onto an incorrect consensus branch, a situation stemming from rapid block times and network latency variances. This triggers a fallback procedure aimed at realigning the node with the correct branch. However, this process is hampered by the inefficient get_provisioners call, which, due to its linear complexity and the large number of Provisioners, takes excessively long to complete. This delay halts the consensus process, allowing the acceptance of blocks on the incorrect branch and ultimately leading to an inconsistent node state incapable of progression.

Current Mitigation Plan
Before introducing a permanent migration procedure, we have released a new state. This enables nodes that are stuck to jump onto the correct branch and resume normal operations.

Stake Contract Upgrade
To properly address this issue, and simultaneously solving the fallback glitch as well as drastically minimising the improper slashing, we have solved the inefficiencies related to the stake contract, drastically reduced the need to fetch the state of provisioners, removed the bottleneck and reducing the call time by several orders of magnitude, migrated to an event system to notify the consensus without needing to fetch the state, and even laid out the work to soon rollout the hyperfast sync-up.

In order to adopt these improvements, all nodes will be required to perform a migration to the new contract version. The forthcoming migration plan is under development and will be communicated to all node-runners as soon as it is finalised.
Safari Upgrade - Action Required for Safari Users
Apple recently made an upgrade to the Safari browser, which may afect you if you are using Safari to access the Dusk Web Wallet.

This is the bug they fixed: https://bugs.webkit.org/show_bug.cgi?id=266559

Action
You will need to upgrade to the latest version of Safari. That's all. You only need to do this if you access the wallet on Safari. If you have a Mac but use Brave, for example, you do not need to do anything

Outcome
This fix that Apple pushed will improve the wallet experience for you too as they fixed a bug whereby a saved wallet could be gone, and you would need to reimport and resync it.

This is now fixed so your experience of using the wallet should be improved.
We have some exciting news regarding our partnership with NPEX!

"We are thrilled to share the news that Dusk has entered into an official agreement with NPEX, marking the launch of Europe’s first blockchain-powered security exchange to issue, trade, and tokenize regulated financial instruments. Such a unique commercial partnership between a regulated financial entity and distributed ledger technology (DLT) is a significant achievement for both Dusk and the broader cryptocurrency sector. It establishes a foundational step towards achieving our goal of making real-world assets accessible on-chain for everyone."

Please like and retweet this, and of course read the post for more details!
https://twitter.com/DuskFoundation/status/1767592919085543599
First major ITN upgrade! 🚀
We're excited to announce the first major ITN upgrade, resolving many of the issues the network has experienced so far.

This upgrade includes the migration of the staking contract. **A network upgrade that will be activated on block 438,000**, with an expected activation time around Friday morning at 10:00 CET.

⚠️❗️**It is obligatory to perform the upgrade before the 438,000 block height**❗️⚠️

How to upgrade
Follow the instructions at https://docs.dusk.network/itn/upgrade-node/

What happens if you don't upgrade ⚠️⚠️⚠️
While we will be very lenient with any uptime calculation so far and will largely ignore slashes before the 438,000 block height, those node runners that will not upgrade before the 438,000 will be severely penalized and likely not be eligible for any reward.

What happens if you upgrade but something won't work
From the date of this announcement you will have roughly 2 days to upgrade. If you experience any problem please report them in https://discord.com/channels/847466263064346624/1217506837629243453
Post in that channel ONLY if you have problem with this upgrade. Off-topic messages will be deleted.

What's in the update?

Key features of this update:
- Optimization of `get_provisioners`: We're resolving a known bottleneck that has been giving slow downs in consensus. This should result in a much more stable network, and remove most improper slashes.
- First Network Upgrade: To achieve this change, the ITN will see its first major upgrade, activated at block 438000.
- Fast Node Syncing improvements: The fast syncing feature has been improved. Higher block states are dynamically made available, and the script is now available as a command alongside the rusk and ruskquery commands.
- Upgrade to piecrust 0.17
- Use of parallel query: no more nodes stuck while wallet sync
- New event-based stake notifications: Consensus will no longer query the staking contract but will subscribe to its events
- Progressive slashing: New stake contract's slash will shift eligibility to the next full epoch instead of the next epoch
Cache Invalidation Remedy

Please restart your node ASAP:
service rusk restart


What's going on
Following the analysis of the cache invalidation problem described here: https://discord.com/channels/847466263064346624/1209925209415487508/1218204798495490151 we found out that remedy would be simply to restart the node.

What should happen after restarting
The node will simply drop the cache. At that point, the nodes will have the right Provisioner set, but will likely start from different iterations. It is to be expected that the network will recover, but only after a while. After a new block will be produced, the network is expected to return in synchronous mode and be much more stable than before the migration
Data Collection Weekend - No Action Required

Following the commencement of block 438,000, we saw the migration procedure kicking in, in a seemingly successful manner. However, the cache invalidation problem described in the ⁠technical-updates⁠ on Discord has brought to the surface a number of different corner cases. Those corner cases are providing the team with invaluable insight over the behaviour of the network in extreme asynchronous conditions.

Since this is the kind of information we were hoping to bring to the surface during the ITN program, we took the decision to purposefully keep the whole network looping over the current block height in order to properly collect the data over the weekend.

At the beginning of next week, we are going to release an upgrade that will re-establish network synchronism and begin with the tuning of the block gas limit and test the performance of transactions execution.

Your rewards are unaffected while the network will be kept in the asynchronous state.

Please keep your node running during the weekend and disregard any error log.
ITN Installer v0.1.9 - Migration Bugfix And Replay 🚀️️️️️️

Thanks to everybody for keeping the node running during the last few hours. The team has worked tirelessly to collect data, and we are happy to report that we have already released the itn-installer v0.1.9 to fix the issues experienced upon the migration and adding a couple of utilities that the community asked for.

TL;DR
Follow the instructions at https://docs.dusk.network/itn/upgrade-node/ to upgrade.

To give everyone enough time to perform the upgrade, the nodes with the new version will await Monday 18th of March at 15.00 UTC before resuming the consensus.

⚠️❗️**It is obligatory to perform the upgrade as soon as possible in order to meet the deadline on Monday 18th of March at 15.00 UTC**❗️⚠️

## What happens if you don't upgrade :warning::warning::warning:
Those node runners that will not upgrade before the deadline will be on a different network ID and won't ever get to the 438,000 block. Thus they will be severely penalized and likely not be eligible for any reward.

## What happens if you upgrade but something won't work
From the date of this announcement you will have roughly 2 days to upgrade. If you experience any problem please report them in https://discord.com/channels/847466263064346624/1217506837629243453.
Post in that channel ONLY if you have problem with this upgrade

What's in the update?
This upgrade will revert the state of your node back to the last finalized block, 437,997. This way, we will be able to replay the migration at block 438,000 and observe how the network reacts on upgrading the protocol and the stake contract in particular.

Key features of this update:
- Fix for the cache invalidation problem
- Fix for the out of gas problem caused by session rollback preventing re-execution of migration logic if transactions are included in the block.
- Inclusion of logic for the consensus to activate on March 18th/Monday 15:00 UTC (3 PM GMT or 4 PM CEST).
- download_state is now available as a command.
- We added a version check for ITN installer using ruskquery version
Dusk - Announcement Channel
ITN Installer v0.1.9 - Migration Bugfix And Replay 🚀️️️️️️ Thanks to everybody for keeping the node running during the last few hours. The team has worked tirelessly to collect data, and we are happy to report that we have already released the itn-installer…
- If after the upgrade you will get NETWORK MISMATCH error, this is normal. It means your upgrade successfully changed your network ID and you are receiving messages from nodes that did not upgrade
- It is not a problem if after upgrading you will see your node at block 437,999 or in the vicinity of 437,997. When the node will resume on Monday, the network will converge to the last finalized block.
- The block explorer will resume normally after the consensus will kickstart again on Monday at 15.00 GMT.

If you run ruskquery info you should see at least the following after the upgrade:

{
"chain_id": 37,
"version_build": "0.7.0 (d0169e3 2024-03-16)"
}
Stress Testing

The team has monitored the behaviour of the network after the stake contract migration.
For comparison, given a set of 1000 provisioners, the following benchmarks have been run :

- Before migration: Benchmarking get_provisioners time: [20.827 s 20.845 s 20.863 s]
- After migration: `Benchmarking get_provisioners time: [2.3989 ms 2.4062 ms 2.4138 ms]

We observed a performance improvement of a mind blowing 99.988% 🎉

One of the consequence of the removal of this inefficiency is that we dramatically improved the duration of a fallback **from 3m down to 0.5s**:

2024-03-18T17:08:44.273754Z INFO node::chain: event="block received" src="wire" blk_height=438290 blk_hash="0d86e7e7d7062979...42263a16e27692a1"
2024-03-18T17:08:44.273813Z INFO node::chain: event="block received" src="wire" blk_height=438290 blk_hash="0d86e7e7d7062979...42263a16e27692a1"
2024-03-18T17:08:44.273825Z INFO node::chain: event="block received" src="wire" blk_height=438290 blk_hash="e46e0323266fc8a0...6af3b4786b1b0588"
2024-03-18T17:08:44.273835Z INFO node::chain::fsm: event="entering fallback" height=438290 iter=1 new_iter=0
2024-03-18T17:08:44.273911Z INFO node::chain::fallback: event="execute fallback checks" height=438290 iter=1 target_iter=0
2024-03-18T17:08:44.273919Z INFO rusk::chain::vm: Received get_provisioners request
2024-03-18T17:08:44.299059Z INFO rusk::chain::vm: Received get_provisioners request
2024-03-18T17:08:44.318009Z INFO node::network: sending msg (Block) to peer 161.97.124.173:9900
2024-03-18T17:08:44.322659Z INFO node::network: sending msg (Block) to peer 161.97.118.174:9900
2024-03-18T17:08:44.751484Z INFO node::chain::acceptor: event="vm reverted" state_root="a21ac6910999d9902a681a8cf7958854d572fcd69346102083f5698ab59aaa78" is_final=false
2024-03-18T17:08:44.751608Z INFO node::chain::acceptor: event="block deleted" height=438290 iter=1 label=Accepted hash="0d86e7e7d70629796194bff8a54a39d67b5ed9a9a62c0eef42263a16e27692a1"
2024-03-18T17:08:44.751707Z INFO node::chain::acceptor: event="updating blockchain tip" height=438289 iter=0 state_root="a21ac6910999d9902a681a8cf7958854d572fcd69346102083f5698ab59aaa78"
2024-03-18T17:08:44.753315Z INFO rusk::chain::vm: Received get_provisioners request


Getting Ready For Stress Testing
The team is now ready to move toward stress testing the network in order to understand its current capacity, detect more inefficiencies, and fix any eventual problems arising. In the upcomging days we will progressively increase the amount of transactions over the network in order to get to the maximum possible capacity and observe the network under prolonged periods of congestion. During those times, it is appreciated if users will contribute to the load by pushing transactions together with us (even making a transaction toward your own wallet would work).
It may happen that the stress testing will create some latency and glitches over the network. The detection of these occurrences will provide us with potential bottlenecks to solve.
Transition to Nocturne: The Official Dusk Testnet Launch

Today, we stand at a pivotal moment in the evolution of Dusk. As we bid farewell to the Incentivized Testnet Network (ITN) and usher in Nocturne, our official Testnet, it's crucial to reflect on the journey thus far and the promising horizon that lies ahead.

The Sun Sets On ITN2 🌅

The ITN has been a crucial proving ground for our technology, thanks to the relentless dedication and invaluable insights of our community. The stress testing phase, in particular, has unearthed critical data that steered us towards groundbreaking optimisations. A notable discovery was the inverse correlation between the capacity of the block and the probability of converging at low iterations. This insight led to an optimization that boosted performance by an astounding 70%, enabling us to reach a theoretical block processing capacity of 250 transactions per second (TPS) Read More: https://t.co/BC7GRMoVm4.

These achievements underscore the success of ITN, culminating in a remarkable finale.

ITN Success In Numbers 🔥

Our journey through ITN has been marked by significant milestones:
* Over 8,031 Provisioners joined the network.
* Discovery and resolution of 12 bugs and inefficiencies in the consensus and networking layer.
* Enhancement of our wallets through the resolution of 16 bugs and the addition of 29 features and 27 enhancements.
* Release of 9 versions of the installer.
* Performed 2 successful protocol upgrades encoded in smart contracts—a first in our industry.
* A monumental 99.98% performance improvement in the get_provisioner bottleneck.
* A staggering 70% improvement in transaction processing, reaching a theoretical TPS of 250 with a block time of 5 seconds (and an expected real TPS of 100+) making Dusk among the fastest privacy-preserving protocols in the world.

Introducing Nocturne 🌒

With the sunset of ITN, we welcome Nocturne, the next phase in our journey towards a fully realized Dusk. Starting tomorrow, we will launch the new Nocturne network. Nocturne will be the primary environment for testing and refining new features, experiments, and fixes before their Mainnet release. This strategic shift not only underscores our commitment to excellence but also ensures that every aspect of Dusk Network is robust, efficient, and primed for scalability.

ITN2 Node Operators: Tonight Dusk will stop its nodes and finalize ITN. Node runners that do not wish to continue operating their nodes in Nocturne, can simply switch off their node.
Nocturne Node Operators: Tomorrow will mark the inception of Nocturne with a new genesis. For those of you that desire to participate in Nocturne, be prepared for the announcement detailing the requirements to run a Nocturne node. As pioneers of this new environment, you'll be eligible for future incentives and airdrops, playing a critical role in shaping the future of Dusk.

Your Engagement Is Key

As we transition to Nocturne, your continued involvement is as vital as ever. The insights gained, the challenges overcome, and the milestones achieved during ITN have paved the way for this new chapter. We invite you to join us in this journey, contributing to tests, providing feedback, and being an integral part of our community's growth.

In anticipation of the questions and feedback you may have, we're committed to providing comprehensive information and support as we embark on this exciting new phase together.

Thank you for your support and for being a part of this transformative journey.
Welcome to Nocturne: The Genesis of a New Era

We are thrilled to announce the genesis of Nocturne🌒, the official Dusk Testnet. We will release the new dusk-installer shortly. On Monday, 25th March at 12:00 CET we will open Nocturne to the wider community and users will be able to run the dusk-installer to setup (or migrate) their node. Here’s everything you need to know to be a part of this pivotal moment.

Transitioning to Nocturne (For ITN Participants) 🌖🌗🌘🌑🌒
Nocturne is not just a Testnet; it's the bedrock upon which future innovations and features of the Dusk network will be built and assessed. By participating in Nocturne, you're contributing to the refinement and robustness of the network, ensuring that Dusk remains at the forefront of privacy-oriented blockchain technology.

New ITN Installer Release 🚠
To ensure a smooth transition. Node runners eager to participate in Nocturne are advised to download the dusk-installer and follow the instructions provided. The UX will be very close to the old itn-installer.

1. Prepare: Download and install the new dusk-installer
2. Reset your node: Run the command ruskreset in order to prepare and run your node for Nocturne.
3. Check Rewards: Run rusk-wallet stake-info —reward to verify the migration of your stake and rewards.
4. Use The Faucet: You will need nDUSK in order to withdraw your reward and stake. The faucet will be reopened and configured to provide nDUSK (Nocturne-DUSK).
5. Migrate your Stakes: Run withdraw and then stake.

Important Information for ITN Node Runners ⭐️
- Rewards on Mainnet: The rewards earned during ITN do not translate on a 1:1 basis to compensation on Mainnet.
- Eligibility: We'll soon announce eligibility of the rewards earned during ITN2. Please wait for further announcements about that.
- Essential Keep: The only crucial piece of information ITN node runners need to retain is their wallet seed. Keeping logs from ITN is not necessary.

The Journey Ahead
As we step into this new chapter with Nocturne, we are reminded of the strength and dedication of our community. Your continued support and participation are what drive Dusk forward. Together, let’s embark on this exciting journey towards a scalable, efficient, and innovative future.

Thank you for being a pivotal part of our journey. Welcome to Nocturne — the dawn of a new Dusk era.
Nocturne is launched
We are happy to report that Nocturne has been launched at 12.00 CET today and it is steadily producing blocks 🎉

The documentation has been updated to help users to run a node on Nocturne. We also included a section focusing on those who have run a node on ITN and now wish to run a node on Nocturne.
Dusk Network Token Migration Alert


This announcement is for those that have DUSK on a BEP2 wallet and are unable or unwilling to send them to Binance.


As Binance is sunsetting the Beacon Chain, it's imperative to migrate your BEP2 DUSK tokens to BEP20. The discontinuation of the Beacon Chain means post-May 1st migration may not be possible. Ensuring your tokens are migrated on time is crucial for their continued functionality and future usability on the mainnet.

Why is Immediate Action Required?
With the Beacon Chain coming to an end, migrating before the May 1st deadline is essential to keep your DUSK tokens active.

Migration Info
- A wallet with BEP2 DUSK and a bit of BNB for fees.
- A Binance Smart Chain-compatible wallet for your new BEP20 DUSK tokens.

Please consult the Migration Guide. Need help or have questions? Reach out on our Telegram or Discord.


BEP20 DUSK will be distributed starting May 1st, 2024. Post-May 1st, the status of migrations can be tracked on the BSC chain explorer.


Act now to ensure your DUSK tokens remain active and future-proof

Q: I have Dusk on Binance CEX, should I do anything?
A: No

Q: How do i know what type of Dusk token i have? I bought them in Binance
A: If you bought them on Binance and they are still there, you don't have to do anything. If you withdrew the tokens on the BEP2 chain, then you will have them in a BEP2 wallet. In this case you will need to perform the migration