The previous article discussed why PoS networks strive for multiple validation clients and how Firedancer helps secure Solana. Below, we will share our experience of running Firedancer in Testnet. We will run through the official documentation for building Firedancer, monitoring options, compatibility with our current infrastructure, and check the client's stability.
During the Solana Breakpoint 2023 event, it was announced that “Frankendancer” (Firedancer with runtime and consensus modules borrowed from Solana labs client) successfully acts as a validator node in the Solana Testnet. We were excited about this announcement and the rest of the community.
The Firedancer team provides great build & run documentation, which can be found here. The documentation is decent, so we don’t think it is necessary to repeat it here. You must update your Linux kernel to >5.7 to successfully build Firedancer (it should not be a problem even on Ubuntu 20 since its mainline repo contains this kernel). We successfully built Firedancer on top of our test server with Ubuntu 20.04.
In contrast to the Solana Labs client, Firedancer uses a toml configuration format—some configuration directives bypass Solana Lab components so that you can use this feature in your favor. For example, you can bypass only the public key of your vote key with a directive vote_account_path
and keep your vote key out of a server with a validator in a safe place. The key configuration section may look like this:
[consensus]
identity_path = "~/identity-keypair.json"
vote_account_path = "DGjZLMwYmQU7vCPqyTxdnyKwaf1uu8eMdLeSmzqv2SZj"
If you have experience running the Solana Labs client, the basic config for Firedancer will not raise many questions for you except for section layout. Let’s revise the “must-have” minimum options of this section:
affinity
- number or range of logical CPUs available for Firedancer. According to documentation, it is advised to allocate some cores for Solana Labs client and the rest for Firedancer. We had 32 cores on the server, enough to provide up to 9 cores to make Firedancer work (affinity = “0-27”). We also tried to play with affinity
directive and found that Firedancer starts successfully with 12 cores at least.
net_tile_count
refers to the number of network queues on your network card. You need to adjust this directive precisely to the amount of network queues exposed by the network driver to OS. If net_tile_count
exceeds the number of network queues, you will lose some cores for nothing. If net_tile_count
is lower than the number of network queues, Firedancer starts losing traffic (higher skip rate, lower vote success, etc.).
verify_tile_count
- in the official documentation, it is said that this directive controls how many tiles are dedicated to transaction signature verification. In our case, the command /opt/fdctl configure init all --config /home/firedancer/config.toml
crashed if verify_tile_count
was not equal to net_tile_count
, and as a consequence, Firedancer could not be started.
To figure out the number of network queues, you will first need to get the name of your network interface by using the commands ip address
or ifconfig
. After that, you can use the utility ethtool
to retrieve the number of network queues:
# ethtool -l {network_interface_name} | grep -A4 "Current hardware settings"
Current hardware settings:
RX: 0
TX: 0
Other: 0
Combined: 2
If you didn’t apply special tuning to your network stack you likely see a count of network queues in row Combined.
If you plan to run Firedancer for an extended period, you will probably need configuration for the process manager. You are likely using Systemd, so we are happy to share our Systemd unit for Firedancer, which we used for running our instance of Firedancer in Testnet:
[Unit]
Description=Firedancer Validator Service
After=network.target
[Service]
ExecStartPre=/opt/fdctl configure init all --config /home/firedancer/config.toml ExecStart=/opt/fdctl run --config /home/firedancer/config.toml
ExecStop=/opt/fdctl stop
Restart=on-failure
LimitNOFILE=100000
LimitNPROC=100000
LimitCORE=infinity
[Install]
WantedBy=multi-user.target
It is a very basic Systemd unit without hardening, so it is not production-ready and works for testing only. If you plan to use this Systemd unit, you need to adjust paths of config and fdctl in your environment. It is worth mentioning that Firedancer requires root rights for starting, so it makes no sense to run this unit under a non-root user. After starting the application and configuring the necessary system parameters, Firedancer will downgrade its privileges to the user specified in the configuration file. Note that the configure
command must be executed before each Firedancer startup and after each system restart.
Next, we would like to discuss monitoring-related questions. Solana Labs provides CLI utilities for monitoring validators, but there is no built-in Prometheus target (Prometheus is the de facto standard nowadays). We developed an in-house Prometheus exporter to monitor our Solana nodes (both validators and RPC), and we were thrilled to see that our prom exporter could fetch all metrics from Firedancer RPC with no issues and no changes required (you can find our Grafana dashboard with metrics fetched from Firedancer on Picture 1). Presumably, it happened because of the implementation of the REST-API interface located in one of Solana Labs' modules integrated into Firedancer. Firedancer is not equipped with tools for monitoring the node's performance in the cluster. However, it was announced that some monitoring tools will be added in the future. Before that, you can use Solana CLI tools to monitor Firedancer (solana-validator --ledger={ledger_path} monitor
or solana catchup --our-localhost --follow
); we checked it works smoothly.
We ran the Firedancer client (version 1.17.1004) on our Testnet validator for 4 days, and no accidental crashes were observed. It would be great to run some performance tests (Solana Labs client vs Firedancer). Still, it doesn't make much sense because Firedancer performance will be bottlenecked on the runtime/consensus stage.
Solana Validator has an “on-the-fly” key change capability, which we often use in our work. We asked the Firedancer developers about this feature, and they said it's not in the plans right now. Still, they have a long-term idea to make restarts as fast as possible so you can restart with the new identity key rather than trying to support dynamic configuration.
We are delighted to confirm that Frankendancer can act as a Solana validator at this stage! It feels like Jump Trading invested a lot of work and passion in creating Firedancer, and we in P2P appreciated it so much. P2P validator has been validator in Solana almost from the start of mainnet, and the upcoming Firedancer release in mainnet feels like one of the most significant events in Solana's ecosystem. It is a big step forward for the whole Solana community, and we look forward to testing out genuine Firedancer (with no Solana Labs client as a dependency) later next year.
Authors:
Anton Yakovlev Lead SRE @ P2P validator Solana team
Ilya Shatalov DevOps Engineer @ P2P validator Solana team
<p>P2P.org has entered into a strategic alliance with Mantle, an emerging DAO-led <strong>ecosystem built around the Ethereum layer 2 Mantle Network</strong>, intending to broaden the availability of liquid staking solutions through the Mantle LSP liquid staking protocol.</p><p>Our decision to join forces with Mantle stemmed from a proactive approach. We saw a unique opportunity with <strong>Mantle's roadmap to develop new liquid staking opportunities</strong>, and P2P.org wanted to offer its expertise to be part of this innovative venture. Mantle LSP requires a reliable staking provider that guarantees fast execution of setting-up and exiting validators.</p><p>Mantle's approach resonated with us, particularly their need for a flexible, no third-party, direct integration flow. It was important for Mantle LSP not to use any third-party intelligent contracts, in essence, to act as a proxy for the request of new validators. This resulted in a more secure staking operation.</p><p><strong>This collaboration allows us to provide tailored solutions, meeting Mantle LSP's specific requirements while expanding our client base </strong>and exploring new staking dynamics similar to leading platforms like Lido. In essence, working with Mantle aligns perfectly with our mission to innovate and adapt in the evolving landscape of Ethereum staking.</p><p>The collaboration between P2P.org and Mantle is aligned with their shared vision of promoting decentralized technologies and encouraging broader participation in the staking ecosystem. This alliance aims to democratize staking rewards and elevate the overall user experience by facilitating easy access to liquid staking opportunities.</p><p>This strategic alliance underscores P2P.org's commitment to delivering innovative, user-centric solutions that foster the growth and adoption of decentralized technologies. Incorporating Mantle LSP's liquid staking capabilities further solidifies P2P.org's standing as a leading staking services provider.</p><p>As the decentralized landscape continues to evolve, P2P.org and Mantle are dedicated to collaboratively developing innovative solutions that enhance user experiences and propel the advancement of staking technologies. This alliance signifies a significant stride in making stakes more accessible and enabling users to participate actively in the decentralized economy.</p><p><strong>An Insight Into Mantle: More Than Just a Network</strong></p><p>Mantle is a beacon for decentralized and token-governed technologies, encompassing an array of products like Mantle Network, Mantle Governance (DAO), and Mantle Treasury. With its native token, $MNT, Mantle states its plan to unify its products and steer its governance, making it a central force within its ecosystem.</p><p><strong>Joining Hands for a Collaborative Future</strong></p><p>Our collaboration with Mantle reflects P2P.org's commitment to a cooperative and collective future for decentralized finance. Throughout this journey, our dedication remains focused on ensuring that our users and the broader community can fully leverage the advantages of this collaborative partnership.</p><p><strong>Contact Us</strong></p><p>For those interested in delving deeper into our joint initiatives with Mantle or gaining a better understanding of P2P.org's overarching vision, <strong>we encourage you to reach out and connect with us.</strong> Embracing the decentralized future, we, alongside partners such as Mantle, look forward to actively contributing to its development.</p><p>To obtain further information about our collaboration or explore Mantle's innovative realm, please visit <a href="https://www.mantle.xyz/?ref=p2p.org">Mantle's official website</a> or engage with our dedicated team on our official <a href="https://t.me/P2Pstaking?ref=p2p.org">Telegram channel.</a></p>
from p2p validator
<p>We are excited to unveil an exciting <strong>new partnership between P2P.org and Matrixport, strategically designed to supercharge the growth of staking opportunities for institutional investors to engage in ETH staking.</strong> This collaboration seamlessly aligns with P2P.org's core mission of delivering secure and user-centric staking solutions. Moreover, it underscores our unwavering commitment to accelerating institutional adoption.</p><h3 id="whos-matrixport">Who's Matrixport?</h3><p>Matrixport is one of Asia's fastest-growing digital asset platforms that offers a comprehensive suite of crypto investment products and financial services. Its service includes tokenized real-world assets, prime brokerage, custody, spot OTC, fixed income, investment products, lending, and asset management. </p><p><strong>P2P.org’s infrastructure and platform now power Matrixport’s groundbreaking and hassle-free staking product.</strong> Clients' deposited ETH will be 100% staked through P2P.org. </p><p>Our mutual aspiration is to actively propel the adoption of institutional staking and move the ecosystem forward, ensuring its continuous growth and evolution. The shared vision revolves around simplifying user access to diverse financial products via decentralized technology. </p><h3 id="enhanced-staking-and-security-with-p2porg">Enhanced Staking and Security with P2P.org</h3><p>Your security is our top priority. At P2P.org, we take a dual-layered approach to protect a client's digital assets. We also have stringent security measures, such as cutting-edge encryption protocols and multi-signature wallets.</p><p>Our commitment to protecting your stake, even in worst-case scenarios, sets us apart. Our fail-safe mechanisms, like smart contracts, ensure you can permanently unlock and access your assets.</p><p>Together with Matrixport, we are committed to delivering a seamless, secure, and efficient path for institutional Ethereum staking opportunities.</p><h3 id="contact-us">Contact us</h3><p>For in-depth insights into staking with Matrixport and leveraging P2P.org's robust security features, contact <a href="https://www.matrixport.com/institutions/get-in-touch?ref=p2p.org">Matrixport</a> or connect with our customer service teams on Telegram at <a href="https://t.me/P2Pstaking?ref=p2p.org">https://t.me/P2Pstaking</a>.</p>
from p2p validator