Alright guys. Here's what I'm looking into doing, and the plan of action to do it.
I haven't gotten much feedback on the rewards schema so I decided to just come up with something I liked.
If you have feedback, ideas, or suggestions now is the time to speak up!So I'm looking at turning this:
Into this:
I'm not entirely sure how it will impact inflation, but what I do know is this. Just looking at the chart we can assume an average reward of 5 coins in the new schema. Also, when simulating current POS rewards i totaled about 500,000 coins per 100,000 blocks (also an average of 5 coins per block). This doesn't take into account how the current POW rewards lower inflation. So, it's possible we might see a slight increase in inflation rates if we do this.
It's also worth noting that this would essentially eliminate the competitive edge POS workers have over POW workers. POW would earn the same as POS, the only difference being one increases over time and one decreases.
I think this schema would:
• Simplify the rewards
• Make it easier for people to understand at a glance
• Encourage more miners to join Swing
• Fix the rounding errors causing sync problems
• Create longer, more obvious cycles to base trades on
• Encourage POW miners to stake their rewards, and encourage POS workers to mine.
Here's what it would take to accomplish this upgrade. (Some steps possibly missing)Spin up new test server
Install Swing
Download blockchain, check for match with seed node.
if match: use it
if not: get it to match
Get block count ("BC")
Turn off new node
Write new rewards code
set it as rewards for blocks > BC+5
Patch rounding errors
Add checkpoints at BC
Increase protocol version
(Disables connections from older versions)
Change seed node IP to test server
Upgrade test server to new core
delete /Swing
keep ./Swing (wallet, blockchain data, config, etc..)
git clone and install new Swing code
boot Swing
Add coins and try to enable staking
Wait for blockchain to move
Wait 5 blocks for new rewards to kick in
Wait a few more blocks to test for successful fork
Wallet upgrades?
Check if I can/should make any upgrades to the wallet
Increase wallet version
Compile new windows wallet
Add Wallet.dat
Attempt to connect to test server
Download blockchain
Check for sync errors
Test POS rewards code
Make sure the correct POS rewards are coming in
Watch number precision, check for signs of potential rounding errors
Allow POW diff to fall for next step
Attempt to POW mine
Setup solo miner (~415 MH/s)
Get it to start mining
Watch wallet for mined blocks
Make sure the correct rewards are coming in
Watch number precision, check for signs of potential rounding errors
Turn off windows peer
Checkpoint a block from successful rewards fork
Upgrade test server again(to include new checkpoint)
delete /Swing
keep ./Swing (wallet, blockchain data, config, etc..)
git clone and install new Swing code
boot Swing
Compile windows wallet again (to include new checkpoint)
Run windows wallet and check for sync
resume mining
Test new client
Put wallet on new windows enviornment
Sync to new peers
Download whole blockchain
Confirm proper block sync
Make a test transaction
Check peers to confirm seperation from old versions
Double check
POS rewards
Mining
POW rewards
New network sync
Connected to new peers
Not connected to old versions
Block agreement
Transactions working
Protocol versions
Wallet versions
Launch
Upload wallet
Release wallet and new core code
Ask server operators to redownload the blockchain
Block explorers
Exchanges
Pools
F5 repeatedly to see if it works or explodes.
If it works
-yay!
If it completely explodes
-Turn on coffee pot..
Please Post A Response With Your Thoughts!!