Pages:
Author

Topic: ♘♕♔SWING♚ ♛♞ ▬▬▬▬●Programmatically Fluctuating Miners Cost!●▬▬▬▬ Now On Bittrex! - page 10. (Read 119459 times)

hero member
Activity: 686
Merit: 500
hero member
Activity: 938
Merit: 1002
To re-cap, in Swing we are currently working on a core upgrade to improve stability, along with implementing a new rewards schema.

We are turning this:



Into this:



Progress Report On The New Version (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                                     <------- We are roughly here. Making good progress. I'm currently downloading the blockchain so I can test the new code.
   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..
hero member
Activity: 938
Merit: 1002
Good news!

I just had a nice chat with Richie from Bittrex. We spoke about recent events, then confirmed that Bittrex is in sync. They have now re-enabled the Swing wallet so trading can resume.

I'm still pushing forward with the new version and will keep you guys updated.

Side note: opmac I'll shoot you a message.
hero member
Activity: 588
Merit: 500
hero member
Activity: 588
Merit: 500
Got everything synced and working now.

Just took the nodes and added them to a conf file and downloaded the chain over.

But it does look like I have missed out on alot of SWING that I mined from zpool
full member
Activity: 195
Merit: 100
thanks, tried that but it is still there...

As I was on wrong chain for about 2 days, I have now many "generated but not accepted" in my wallet...
Is there a way how to get rid of those?
Thanks

Use of the console: repairwallet
Should help.

legendary
Activity: 1834
Merit: 1006
As I was on wrong chain for about 2 days, I have now many "generated but not accepted" in my wallet...
Is there a way how to get rid of those?
Thanks

Use of the console: repairwallet
Should help.
full member
Activity: 195
Merit: 100
As I was on wrong chain for about 2 days, I have now many "generated but not accepted" in my wallet...
Is there a way how to get rid of those?
Thanks
full member
Activity: 195
Merit: 100
I'm on right chain again, thanks dev for solving this!  Smiley

I edited Swing.conf, deleted everything there a inserted up to date nodes from https://chainz.cryptoid.info/swing/#!network

Tip for you guys: I backup blockchains every week or two, never used it - until now.  So I needed only download two weeks of chain, less than 30 mins and I stake like champ again  Smiley
Backing up is important  Grin

Ok guys,

I've been doing a lot of testing. It's slow work since it involves a lot of chain re-downloading, but here's what I've found.

Most of the network is on the correct chain. When I say the "correct chain" I DO mean the chain that https://chainz.cryptoid.info/swing/ is currently reporting. It appears to have the most weight, and both linux and windows environments seem to sync up with it without any special configuration.

I think most of the network is doing exactly what it's supposed to do, ignoring any shorter / dead forks and collectively agreeing to use the healthiest one. I think it took a few days for this to happen for the following reason.

The issue i'm seeing is that the seed node itself wants to disagree. It seems to be ending up on a wrong fork with very little POS / POW weight. While I was testing it even slowed to a stop. For this reason I realized that developing a manual fork moving the whole network into agreement with the seed node would be a bad idea. I am currently trying to get it to agree with the rest of the network. The odd thing is that even a new wallet on the same linux environment agrees with the rest of the network, but the seed node doesn't. I have had time to re-download the chain on it once and it ended up on the wrong chain again. I'm about to try again and will get it synced up eventually. (If you have maxconnections = 1, don't do that.)

I think part of the reason that this happened to the seed node was a stability band-aid I implemented. It worked great for a while but the band-aid "fell off" about a week ago. When the chain got bumpy a few months ago I put my coins on the seed node and turned on staking. My thinking was that if the seed node was breaking blocks occasionally it would keep things moving and prevent the chain from halting. It's something that helped alleviate similar issues in our previous coins (Greed / GE). This worked pretty well actually and I've kept my coins there since then, but about a week ago the seed node broke a block that the network disagreed with. For whatever reason (probably a rounding error) the seed node refused the longer correct chain and continued down its own path breaking blocks by itself (any maybe a couple others). Naturally this confused connections to the network, and as I said above it eventually ran out of weight and came to a stop. Naturally it would be unethical to pull a manual fork forcing the network to accept those coins. I'll have to lose about a weeks worth of stakes, but I'm working on getting the seed node in sync and in agreement rather than going with the original plan to get everyone in sync with the seed node. I will also remove the stability "band-aid" and prevent the seed node from generating any more blocks itself. That way it can't try to push forward with blocks the network doesn't agree with.

I think most of you should already be on the correct chain at this point, and if not you should probably be able to get onto it. With a fresh blockchain download you should use the seed node just for its peers and get the correct chain. If you delete the blockchain to re-download, leave peers.dat. You'll want as many peers as possible.

I am going to keep working on getting the seed node in agreement with the rest of the network, then I plan to keep working on the upgrade.

If you want to confirm you are on the correct chain check the block explorer. Also, here's an example of the getinfo from the right vs wrong chain.

//Correct and healthy
 "difficulty" : {
        "proof-of-work" : 190,910.73974916,
        "proof-of-stake" : 0.07002777
    },

//Incorrect and Unhealthy

    "difficulty" : {
        "proof-of-work" : 86,980.06723642,
        "proof-of-stake" : 0.00024414
    },

hero member
Activity: 938
Merit: 1002
Hi guys
If you need a new node I'm happy to put one up for you FOC  to help your coin

Thanks
Paul



That would be great!

Here's my cheat sheet for Linux node install if it helps.

Code:
apt-get update
apt-get upgrade

apt-get install git

sudo apt-get install build-essential
sudo apt-get install libssl-dev
sudo apt-get install libdb++-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libqrencode-dev

apt-get install make

wget http://miniupnp.free.fr/files/miniupnpc-1.6.tar.gz
tar -xzvf miniupnpc-1.6.tar.gz
cd miniupnpc-1.6
make
sudo su
make install

cd ..
git clone https://github.com/SwingCoin/Swing
cd Swing
chmod 755 src/leveldb/build_detect_platform
cd src/leveldb/
make libleveldb.a
make libmemenv.a
cd ..
make -f makefile.unix

./Swingd

cd ~/.Swing
vim Swing.conf
[Insert] (if needed)
daemon=1
server=1
rpcuser=userA
rpcpass=123
[esc][z][z]

cd ~/Swing/src
./Swingd
./Swingd getinfo
./Swingd stop
legendary
Activity: 1778
Merit: 1003
NodeMasters
Hi guys
If you need a new node I'm happy to put one up for you FOC  to help your coin

Thanks
Paul

hero member
Activity: 938
Merit: 1002
Update: I managed to get the seed node back in agreement with the rest of the network. We should be pretty stable now. I'm going to continue working on that core upgrade.

Also I appreciate the feedback on the plans guys. It helps me proceed when I know you're all in agreement.

I like it too, Captain.   Do you need any help?

I think most of the core work is just a matter of me getting through it (unless someone here is familiar with core development and feels like helping).

However, if we change the core we will probably need a new website and ANN post. We could probably use that regardless of the update.

If anyone is good at website / ANN creation / general marketing and wants to help, that's probably the best way to do so. Building up a team of active helpers for things like this can go a very, very long way.
hero member
Activity: 938
Merit: 1002
Ok guys,

I've been doing a lot of testing. It's slow work since it involves a lot of chain re-downloading, but here's what I've found.

Most of the network is on the correct chain. When I say the "correct chain" I DO mean the chain that https://chainz.cryptoid.info/swing/ is currently reporting. It appears to have the most weight, and both linux and windows environments seem to sync up with it without any special configuration.

I think most of the network is doing exactly what it's supposed to do, ignoring any shorter / dead forks and collectively agreeing to use the healthiest one. I think it took a few days for this to happen for the following reason.

The issue i'm seeing is that the seed node itself wants to disagree. It seems to be ending up on a wrong fork with very little POS / POW weight. While I was testing it even slowed to a stop. For this reason I realized that developing a manual fork moving the whole network into agreement with the seed node would be a bad idea. I am currently trying to get it to agree with the rest of the network. The odd thing is that even a new wallet on the same linux environment agrees with the rest of the network, but the seed node doesn't. I have had time to re-download the chain on it once and it ended up on the wrong chain again. I'm about to try again and will get it synced up eventually. (If you have maxconnections = 1, don't do that.)

I think part of the reason that this happened to the seed node was a stability band-aid I implemented. It worked great for a while but the band-aid "fell off" about a week ago. When the chain got bumpy a few months ago I put my coins on the seed node and turned on staking. My thinking was that if the seed node was breaking blocks occasionally it would keep things moving and prevent the chain from halting. It's something that helped alleviate similar issues in our previous coins (Greed / GE). This worked pretty well actually and I've kept my coins there since then, but about a week ago the seed node broke a block that the network disagreed with. For whatever reason (probably a rounding error) the seed node refused the longer correct chain and continued down its own path breaking blocks by itself (any maybe a couple others). Naturally this confused connections to the network, and as I said above it eventually ran out of weight and came to a stop. Naturally it would be unethical to pull a manual fork forcing the network to accept those coins. I'll have to lose about a weeks worth of stakes, but I'm working on getting the seed node in sync and in agreement rather than going with the original plan to get everyone in sync with the seed node. I will also remove the stability "band-aid" and prevent the seed node from generating any more blocks itself. That way it can't try to push forward with blocks the network doesn't agree with.

I think most of you should already be on the correct chain at this point, and if not you should probably be able to get onto it. With a fresh blockchain download you should use the seed node just for its peers and get the correct chain. If you delete the blockchain to re-download, leave peers.dat. You'll want as many peers as possible.

I am going to keep working on getting the seed node in agreement with the rest of the network, then I plan to keep working on the upgrade.

If you want to confirm you are on the correct chain check the block explorer. Also, here's an example of the getinfo from the right vs wrong chain.

//Correct and healthy
 "difficulty" : {
        "proof-of-work" : 190,910.73974916,
        "proof-of-stake" : 0.07002777
    },

//Incorrect and Unhealthy

    "difficulty" : {
        "proof-of-work" : 86,980.06723642,
        "proof-of-stake" : 0.00024414
    },
legendary
Activity: 3430
Merit: 1548
Get loan in just five minutes goo.gl/8WMW6n
I just want to know, in chainz.cryptoid.inf data correct?
because still in one my pc swing wallet have much more coins(that main wallet, which staking nonstop long time), then in other(but same address)
I already - rescan  and "repairwallet" both wallet, but any change, still different balance
hero member
Activity: 980
Merit: 512
full member
Activity: 195
Merit: 100
legendary
Activity: 1057
Merit: 1009
Go on dev... we need to exit from this mess... my wallet is close no staking no movement, all stuck and atm unrecoverable.... so i hope in a new version that will take us back on track....
member
Activity: 80
Merit: 10
I like it too, Captain.   Do you need any help?
hero member
Activity: 588
Merit: 500
I am good with this plan.

I can't seem to get wallet working correctly and have invested a lot into it so far.
hero member
Activity: 938
Merit: 1002
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!!
Pages:
Jump to: