Entering Voltaire: on-chain poll for SPOs

Welcome! I wanted to clean it up more, but it was late, and I was tired :stuck_out_tongue: Eventually this all gets integrated into some nice GUI for everyone; fun to be here before that point and watch it all evolve.


The number of votes disappointed me. I expected a lot more.

Well, on PrepProd there are only around 80 block producing pools. And we had to refine and clarify the ballot cast procedure. For now we have 19 ballots casted.

One goal for this governance experiment is exactly to get some idea about what participation ratio we can expect in the future.


In the first second, I thought the same, but then I realized that PrePod is a different world.

1 Like

I was also interested in participating but didn’t see how I currently could… without a reliable local Internet connection to create a PreProd testnet pool on a local machine, we would have had to dedicate cloud resources from a limited budget which is now fully allocated to the mainnet pool.

Maybe with trial offers from cloud services it could have been done: but if so, then with only a small number of opportunities to repeat the test. But we would be in the minority of motivated SPOs working from areas with no reliable local Internet access and I’m not suggesting that the testing be done any differently. :face_with_monocle:

I ran VMWare workstation on my home dev box, gave it 4 cores, 256GB SSD (only needed about ~2.6GB for entire PreProd database), and 12GB of RAM. Installed Arch Linux from ISO on the VM, installed the usual base development stuff (gcc/make/autoconf/etc) then ghcup.sh for the cabal/ghc specific tools/config. Cloned the cardano-node repo from github and ran the scripts from the poll repo to get from there to here. We have dedicated servers for mainnet, but you can do PreProd with way less resources for sure.

1 Like

I expected exactly a reply like this from somebody: saying nothing about our primary limiting factor of no reliable Internet. By “not reliable” I don’t just mean slow, jittery & long latency… I mean TCP/IP has no end-to-end reliability (4G cannot provide any such guarantees). It’s incredible how in the modern world people think, with so much evidence to the contrary, that high-speed robust Internet is available everywhere.

This test run is fine in my opinion, but my point was that people can’t freely participate unless they have high quality Internet in the home, or have a standard budget for cloud services… not that people don’t know how to provision a VM environment.

Oracle gives out ARM servers 100% free with 24gb RAM or so, I know people are using it to run production pools, not sure if it is advisable, but in your case you definitely can try to run pre-prod pool there.


My fault, I did miss that internet access was the limiting factor, and went on about my own config. os11k had a great suggestion, the specs are amazing for being a Free Tier:

Arm-based Ampere A1 cores and 24 GB of memory usable as 1 VM or up to 4 VMs with 3,000 OCPU hours and 18,000 GB hours per month

2 Block Volumes Storage, 200 GB total


It fosters democracy.

No it does not.

A proof of stake chain may foster decentralization but it does not foster democracy. This remains a plutocratic vote with participation limited by other factors. Please stop misusing the term “democracy”.

The proposed mainnet poll has been detailed by Cardano Foundation.

Proposed poll text:

Which setup would you prefer to be put in place from Q3 2023 onwards?

  1. Keep k at 500 and minPoolCost at 340 ada.
  2. Keep k at 500 and halve minPoolCost to 170 ada.
  3. Increase k to 1000 and keep minPoolCost at 340 ada.
  4. Increase k to 1000 and halve minPoolCost to 170 ada.
  5. I would prefer to abstain.
  6. None of the above.

So what should I pick when I don’t think any of these options is ideal?


What is the point in changing K when this will have almost no effect on the real minimum attack value (MAV) (currently around 23)? In particular we are kidding ourselves if we think that the K value has any direct correlation with the minimum attack value. (Minimum attack value (or vector) is analogous to the Nakamoto coefficient which measures decentralization and represents the minimum number of actors required to disrupt the blockchain’s network.)

But, maybe there is an advantage in voting for an increase in K? My thinking here goes something like this: Increasing K will force multii-pool operators to split their pools and in turn cause delegators to re-think their delegation strategies. The mult-pool operators will have some difficulty managing this situation and hopefully they will lose some delegation, which will be beneficial for small pool operators.

So, in other words, I think I should vote for an increase in K, but not for increased decentralisation reasons, but rather to create disruption for multi-pool operators in the hope that they will bleed stake to small pool operators. Which I guess, in turn, you could argue might improve decentralisation, slightly.


I personally believe minPoolCost should be drastically reduced to something around 30 Ada. A reduction to 170 is at least a step in the right direction and it is the only reduction option I have. So I guess I should vote for 170.

I don’t want to Abstain or vote “none of the above” as these seem like wasted votes.


So, in conclusion, I should vote for option 4: “Increase k to 1000 and halve minPoolCost to 170 ada”, even though my reasons are based on game theory rather than what I actually think is ideal.

This illustrates the problems with polls like this. The options presented, or even how they are worded, can greatly affect the outcome. Furthermore, the reasoning behind why participants voted a certain way comes back to the available options, and the wording used. This reasoning may not be immediately transparent when tallying the final votes.

Specific criticism of poll option of 170 Ada minPoolCost

@Colin_Edwards proposed the following in this post Minimum pool fees with a brief mention of k changes:

The proposal that best adheres the initial specification of the minimum fixed fee, in my opinion, is to move the fee from 340 Ada to 30 Ada. This would reset the relative sensitivity of the variable fees and fixed fees back to their original levels, and it also closely matches the original fiat values of the fee, which was originally set to around $5.25 / day. That will not fully compensate pools, the intent was that the variable fee would be useful in more situations than just when demand for staking far exceeded the available capacity of stake pools.

Why have the Cardano Foundation chosen a figure of 170 which seems to be not based on any quantitative logic? Does Cardano Foundation not agree with the reasoning of @Colin_Edwards who works as a quant?

Halving the minPoolCost only lowers the barrier to competitiveness for a small pool operator from requiring a stake of 10 million Ada to 5 million Ada. To make small pools competitive, we need to lower it to about 1/10th which coincidentally is the 30 Ada figure Colin suggested. Then the barrier for a small pool to be competitive would be lowered to only needing 1 million Ada in total stake.

For the record, this is what I say on my website as a caution for potential delegators to my pool:

I do not recommend you stake with Terminada pool yet because the protocol does not allow setting the fixed fee any lower than 340 Ada.
With a fixed fee of 340 Ada you will lose too much of your rewards to fees until the pool size is over 10 million Ada.


@werkof Any idea why this vote doesn’t show up on cardanoscan/adastats poll overview?

Did I vote too early? I did see the vote before.

EDIT: Yes, I guess I voted early (epoch 66) and earlier versions of the poll overviews did not take into account epoch limits which resulted in the vote showing before.

:round_pushpin:Understanding the Impact of K and minPoolCost in Cardano

:fire:Debates raged over if Cardano should change the K & minPoolCost for its stake pools in Q3 2023.

Here’s a thread for you to learn more about @Cardano_CF on-chain poll experiment and be involved in the debate.

:thread:1/6 What’s the K?
The Saturation Parameter (K) impacts the number of stake pools in the Cardano network.

It determines the incentive stake threshold that pools earn rewards. The higher the K, the lower the maximum stake cap per pool.

:thread:2/6 What’s the effect if the K changes?
As of now, K is 500, setting the saturation point (stake cap) for a pool at 64M ADA.

When K increases, more stake pools can produce blocks, resulting in increased decentralization. Conversely, a lower K reduces the number of pools.

:thread:3/6 What’s the minPoolCost?
The pool cost is the fixed fee charged by stake pool operators(SPO) to cover their operational expenses.

It is independent of the stake delegated to the pool. SPO can choose their own cost, but excessive fees may discourage delegation.

:thread:4/6 What’s the effect if minPoolCost changes?
Changing the pool cost affects the attractiveness of a pool to potential delegators.
Higher costs may discourage delegation, impacting the rewards received by pool operators.

:thread:5/6 How to be involved in the poll?

  • Join Cardano Forum discussions: Topics tagged spo-poll
  • Once the poll is live, follow specific instructions provided by @Cardano_CF to cast your vote directly.
    Your voice matters—participate and make a difference!

:thread:6/6 The role of Astarter in the poll
As an active member of Cardano, Astarter encourages its followers to participate in the important poll.
:speaking_head:Join the movement and let your voice be heard. Together, we can shape the future of Cardano.

Original thread link: https://twitter.com/AstarterDefiHub/status/1658060976594501633?s=20

FYI: The developer portal now has a dedicated page for the on-chain poll in the stake pool operator section: https://developers.cardano.org/docs/operate-a-stake-pool/on-chain-polls/


Thanks, just got my vote out on mainnet! :slight_smile:

NOOB question. how can we find the values for --tx-in & --change-address that we have to use in this command :

$ cardano-cli transaction build
–tx-in $TXID#$IX
–change-address $ADDRESS
–metadata-json-file answer.json
–required-signer-hash $POOL_ID
–out-file answer.tx

–tx-in is your wallet address you are going to pay for the transaction from. You need to control this address key to sign the transaction.

–change-address is your wallet address you want your change to go to.

1 Like

Can you share with me the command to sign tx with stake pool cold key and payment key -(step 4. Sign the transaction in this document - GitHub - cardano-foundation/CIP-0094-polls ).

Thank you

I found it as:

cardano-cli transaction sign \
    --tx-body-file tx.raw \
    --signing-key-file payment.skey \
    --signing-key-file $HOME/cold-keys/node.skey \
    --testnet-magic 1 \
    --out-file tx.signed

From the instruction at voltaire_voting_preprod · GitHub

yes, that should work, I voted like this on mainnet, just make sure you change testnet-magic 1 to mainnet.

1 Like