Skip to content

[Old docs] mainnet tests

c1nq0 edited this page Jun 19, 2020 · 1 revision

Mainnet tests

Tests consist of two separate parts:

  1. Verification if PoS II and all the wallet's functionality works fine.
  2. Verification if balances from current blockchain are correctly distributed over new blockchain.

PoS II tests

Really brief explanation how PoS works for people who do not know anything

PoS creates transactions in process called staking. Each online wallet containing coins participates in it. Two things matter: amount of coins in each transaction and how long coins are kept. In "standard PoS" for each address amount_of_coins is simply multiplied by time and this produces stakeweight. The higher stakeweight the higher chance staking will occur. This can lead to security issues if big amounts of coins were sent in few transactions since each transaction (even if big) stakes only once in a while. So if few big holders do not have their coins spread over multiple transactions an attacker may be able to stake small quantities over long period of time and launch successful attack with e.g. less than 1% of coins.

PoS II addresses this issue by providing an incentive for big transactions to be spread over several transactions not bigger than 2 000 000 coins (0.1% of total amount). For example if someone bought 5 000 000 coins on exchange and sent the money to his wallet in one transaction he will earn less interest than if he spread 5 000 000 of coins into three transactions each smaller than 2 000 000. Also the higher the amount of coins the more often wallet should be online.

For longer explanation please check Joe's post. Joe is the author of PoS II and is helping with this migration.

In short - do not send to your wallet amounts bigger than 2 000 000 of coins. If you receive bigger amount make sure to split it into several smaller transactions.

Proposed tests - PoS

  1. In this paragraph we talk only about test wallet (PoS wallet) and test money
  2. If you hold any Noblecoins please check second part of this doc to learn how put them on test network. If you do not have any coins yet please let me know and I will send you some test money.
  3. Try staking your coins. To stake you just need to have any coins in a wallet and keep it online. If you cannot keep your computer online 24x7 then do not despair. Just run it whenever you can. If you notice staking happened please consider making notes - just go to 'Transactions' tab and check information which is there.
  4. If you hold more than 2 000 000 coins in your wallet spread it over several transactions of different sizes e.g. 5 000, 10 000, 50 000, 100 000, 200 000, 500 000, 1 000 000, 1 500 000, 2 000 000, 3 000 000, 5 000 000 etc. Then keep your wallet online for a while and observe if staking occurs. If possible monitor which address was staking and maybe make some notes and share them.
  5. After a while you can consider making changes to your staking pattern e.g. if previously you were keeping wallet online for 48h and noticed transaction with 1 000 000 NOBL stakes every 10h and transaction with 100 000 stakes every 20h then you can make some changes to see what happens e.g. close the wallet for 12-24h and see how this affects staking afterwards.

Proposed tests - PoW

  1. Feel free to start PoW mining as well. To do this simply go to the Help/Debug window/Console and type "setgenerate true" or "setgenerate true number_of_cpu_cores". The former simply makes your computer to use all available CPUs to mine while with the latter you can specify how many CPU cores should be doing this. If former slows your computer too much you can try "setgenerate true 1". To switch PoW mining completely run "setgenerate false".

Proposed tests - standard wallet functionality

  1. Just check if everything seems to work e.g. if transactions work etc.

HOWTO check if money from real wallet was properly sent to new blockchain

When coin migrates from PoW to PoS it is possible to do the swap "via an exchange" or "off exchange". Here is list of differences:

  • "via an exchange" forces users to send all their money to specified exchange. if someone does not do it he is stuck with his money on previous blockchain which effectively means he lost it.
  • with "exchange swap" an exchange usually expects to be paid something.
  • "off exchange swap" allows users to choose if they want to send their money to an exchange and let exchange handle it. but they can also decide to do the swap by themselves without any time limit. this means if someone was on long holidays and he checks noblecoin's thread in 6 months he can still use his funds with the new wallet.
  • "off exchange swap" gives us more opportunities for testing.

Brief explanation how the switch from old blockchain to new blockchain happens

Before new blockchain is initiated fairglu, who runs blockexplorer for noble, will take snapshot of current (PoW) blockchain and send me the script having information about all non empty addresses. First 11 blocks of new blockchain will be premine of 2.2 bln coins. This is more than current 2 bln and the surplus will be used for tests and will also send test money to people on request. Then after the premine is confirmed standard PoW will begin with PoW reward being 2 000 coins per block (this may change after tests). When premine is confirmed I will run a script provided by fairglu to distribute the coins over new blockchain. When we do the switch for real exchanges and other external parties will be notified in advance so they can perform wallet upgrade on time.

Explanation of a procedure to use your money on new blockchain (PoS wallet)

Noblecoin's wallet uses file called wallet.dat to keep private keys which allow to spend money. To be able to use money on PoS wallet one needs to get list of all private keys from PoW wallet and then to import each key into PoS wallet.

Security advice - any virtual currency wallet should be kept on a reasonable safe computer. You should also backup your wallet.dat file on regular basis.

Access your coins on new blockchain