A node can introduce a transaction to change the base fee. If a trust-weighted majority of nodes vote "yes" on the transaction, it will be incorporated into the ledger and the fee will be changed.
Now
this is exactly what I am talking about. You go and claim this enormous feature, and there is no algorithm given.
You're saying that you have already implemented a secure system for generalized decentralized consensus and deployed it to Ripple? I find that extremely difficult to believe. Claims like this are abundant throughout the Ripple framework. But there is a dearth of explanation.
Feel free to ask any specific questions. I thought I already pointed you to where the consensus process is explained in the wiki.
It's basically this:
1) Nodes announce the hash of the last closed ledger. To keep things simple, I'll assume we start from a consensus.
2) Nodes propose the hash of the tree of transactions they think should be applied to the ledger in this consensus window.
3) Nodes acquire the transactions other nodes have proposed.
4) Nodes form disputed transaction entries for transactions so long as at least one node they trust included that transaction and one didn't.
5) Nodes avalanche to a consensus on each disputed transaction by going with the majority weighted based on their trust.
6) If avalanche stalls, the agreement rate requires to get a transaction into the consensus set is raised.
7) As nodes detect that the nodes they trust have reached a consensus, they apply the consensus transaction set and publish a validation of the next ledger.
8 ) Validations push other nodes towards consensus.
9) Nodes acquire sufficient validations from other nodes they trust of the new ledger and consider that the next accepted ledger.
10) If any new transactions occurred during the consensus process or any valid transactions didn't get in, a new consensus process starts immediately.
This trust is just trust not to collude. See the wiki page on consensus.
The main reason it works is:
1) Every honest node wants a consensus. They will wait as long as it takes in order to get one. We have no fixed amount of time in which a consensus must be reached.
2) There is no moving target during a consensus window. With respect to establishing that consensus, the world is frozen. There is a fixed amount of information to be known about the state, and more information is always gathered by nodes. They don't forget anything. The ratcheting up of the agreement level required ensures a consensus will eventually be reached.
3) Dishonest nodes cannot stop transactions from propagating to the vast majority of honest nodes. A node would have to have every single one of its connections to a dishonest node. (And we imagine 'core' nodes agreeing to directly connect to each other as a safety.)
4) So long as a transaction can be applied to the ledger and the vast majority of nodes see it before the consensus window, there's nothing dishonest nodes can do to stop honest nodes from including it. (Nodes will extend the consensus window if they aren't getting votes or acquiring transaction sets from trusted nodes that have voted.)
5) If a transaction does not get into a consensus set, but is valid, every honest node that has seen that transaction will vote to include it in the next consensus set.
6) No honest node particularly cares what's in the consensus set, provided it includes transactions that were seen well before the consensus window started. There is no way a dishonest party could get something into the transaction set that shouldn't be there and have that cause any harm. Invalid transactions will have no effect, even if they get in the consensus set.
I'd be happy to answer any further questions you have.