If I use a proof-of-work (PoW) algorithm in the Ethereum blockchain, the node selects to mine a new block is totally random as per my local implementation using Go-Ethereum and inter-process communication (IPC).
However, I am trying to develop a mechanism that is similar to the proof-of-stake (PoS) protocol. For example, what we see in the proof-of-stake (PoS). If a node provides more stakes, it is more likely to be selected as a miner/validator.
I find an example that provides the node's ability to give a vote which I believe is related to PoA and somehow related to my problem, but to be frank, I do not understand what the system will do by getting those votes. The example is here, https://docs.soliditylang.org/en/develop/solidity-by-example.html
I am exploring whether the problem could be solved by smart contract coding. For example, a smart contract that keeps track of the votes for different nodes, and the node that has the highest vote is allowed to add the block in the blockchain.
Advance thanks for your time and helping me out from this situation.