Bible Pay

Read 286732 times

  • Rob Andrews
  • Administrator

    • 4147


    • 97
    • June 05, 2017, 08:09:04 PM
    • Patmos, Island Of
    more
Testnet - Test Proof of Giving
« on: December 06, 2018, 01:00:46 PM »
Welcome to the dedicated testing thread for Proof-of-Giving II (POG).

POG is a mining algorithm based on POW, POBH, Tithing to the foundation, an integrated mining pool, and some elements of POS.

Please see the following technical description:

https://wiki.biblepay.org/Proof-of-Giving-II

And the summary for beginners:
https://wiki.biblepay.org/Proof-of-Giving-for-Beginners

In summary, POG is integrated in the wallet, it is a mixed mining pool with 20% of the reward to the miner/80% reward split between the integrated pool recipients.  The pool participants are based on those who tithed to the foundation (helping our monthly orphan sponsorships) in the last 24 hours.  The tithe_weight for each user drives the pool block reward.

The Proof-of-giving difficulty level will be available in the wallet.
It will display:
min_coin_age:  This is the minimum age in days a coin is eligibile for tithing.
min_coin_amount: This is the minimum coin amount eligibile for tithing.
max_tithe_amount:  This is the maximum allowed tithe amount.

If you meet the conditions you may tithe and become part of the mining pool.
All of the "sowers" (those who tithed) will be rewarded 12 times per day (once every 16 blocks).
After paying the "reaper" (the block solving miner) 20% of the block reward, the remaining 80% will be split among the sowers.

POOL ROUND MECHANICS:
The POG pool is always 205 blocks wide (24 hours), meaning the tithe_weight's in the pool span from the current block back 205 blocks before the current block.

As an example, if sower A tithed at 11 AM yesterday, and sower B tithed at 10 AM today, and the current time is 10:30AM, these two sowers are in the pool.  However, a user who tithed 26 hours ago is NOT in todays pool.

As each block passes, the pool will pay 1/16th of the recipients based on the individual sowers Tier.  Each tithe is inducted into a tier based on the block # it was Tithed in (not according to its amount). 

So what you can expect as far as rewards:  You will receive 12 rewards per day if you have active tithes in the pool.  Once the tithe expires, you no longer have tithe_weight.


AUTOMATIC TITHING:

The wallet is set up to automatically tithe for you once every 4 hours.  The wallet will scan your available coins sorted by age and amount, and use the most applicable SINGLE COIN for a tithe automatically.  It will automatically send the Maximum amount possible.


MANUAL TITHING:


Method 1 - QT: To tithe manually, go to the QT send money page, and click Donate to foundation.  At this point the POG difficulty parameters will appear on the screen.  Select the appropriate tithe amount and click send.  If the coins are not old enough or high enough in value, an error will appear.

Method 2 - RPC:  From the RPC console, type 'exec tithe amount'.
If the tithe fails, a reason will be given.


CHECKING POG DIFFICULTY:

To see the difficulty parameters, type 'getmininginfo'.


CHECKING HISTORICAL POG GIVING:

Type 'showblock blocknumber'. 
See 24_hour_tithes, pog_difficulty, min_coin_age, min_coin_amt, max_tithe_amount.
The historical 24_hour_tithes will show the amount tithed in the last 24 hours.
The block_tithes will show how many legal tithes were inducted from that block.

CHECKING THE POOL:

Type 'exec pogpool'
This report will show the actual live POG POOL and everything in it.
In this pool, we have 16 payment tiers containing an even distribution of sowers (based on each individuals tithe_height).
This will show us the count and sum of tithes per tier. 
Note that if a sower's nickname is available, it will be listed here in place of the address.
(In the near future, we will summarize this list in a nicer way, this is basically a verbose list for debugging purposes).
You can also see the tithe totals, and at the bottom, the sum of your own personal tithes.

HOW TO SET NICKNAME:
In your biblepay.conf file set the key 'nickname=my_nickname' and restart the wallet.


WALLET VERSION:
Upgrade to 1.1.6.2+.  Start with '-testnet=1' flag.


RPC COMMANDS:

exec tithe tithe_amount min_coin_age min_coin_amount:
This command searches the wallet for coins older than min_coin_age and of greater value than min_coin_amount and tithes that single coin in an amount of "tithe_amount". 

exec getdimensionalbalance min_coin_age min_coin_amount
This command scans the local wallet for coins older than min_coin_age and min_coin_amount, and creates a report based on age and value.  You can use this command for debug purposes in testnet to find coins that may be applicable for manual tithing.  (And for debugging current tithe levels).

exec pogpool:
Use this command to see the current payment tiers (0-15).
You will see the user nickname, public receive address, tithe amount, tier, tithe_height.

Then you will see the total tithes per tier.
Then finally you will see the Highest tithe and the amount of personal tithes you have contributed.

exec bankroll quantity denomination:
This command allows you to generate 'quantity' of tithing BBP notes of 'denomination'.  Then you can let them age, and use them for tithing later.
Example: exec bankroll 50 5000, this command will spend 250,000 bbp (back to yourself), and you will receive 50 quantity of 5000 bbp notes.  At this point they will age, and they can be used for tithing.  Note:  We mark the bank notes with a 1millibbp suffix so that we can modify podc_update to skip spending these in the future.





TEST CASES:

1.  Verify that once a tithe is sent to the foundation, it can be seen in a historical block.  You may do this by sending a tithe, waiting for a confirm, then typing:  exec showblock blocknumber.  The fields near the bottom labeled pog_ will show if the tithe has been included in the block.

2.  Verify that sending more than one tithe in one 24 hour period results in increased tithe_weight for you.  And increased total tithes in the pool.

3.  Verify the integrity of the pool.  Audit the pool and reconcile the pool.

4.  Verify the difficulty level parameters per block and per 24 hour period.  Ensure difficulty algorithm is oscillating perfectly and properly according to the tithe history.

5.  Scan debug.log for any trace of "POG Recipients Invalid".  This error should not be in the log.

« Last Edit: December 07, 2018, 04:21:14 PM by Rob Andrews »


Re: Testnet - Test Proof of Giving
« Reply #1 on: December 07, 2018, 06:26:26 AM »
Will download & install today.

I don't know that we should use the same "tithe" button,  what if someone isn't mining and just wants to donate coin?


  • Rob Andrews
  • Administrator

    • 4147


    • 97
    • June 05, 2017, 08:09:04 PM
    • Patmos, Island Of
    more
Re: Testnet - Test Proof of Giving
« Reply #2 on: December 07, 2018, 10:34:54 AM »
Will download & install today.

I don't know that we should use the same "tithe" button,  what if someone isn't mining and just wants to donate coin?


Sorry guys - didn't mean to get everyone riled up - I didn't post it yet cause its "not quite ready"-
I'm testing this on my LAN now, (I checked it in so I can get it predeployed and preverified),
should be ready very soon, then I will make a post on the forum.

I need to add an exec bankroll option today, then I think it might be ready.

On the Tithe button, I think we can definitely add either an Are you Sure prompt, or another checkbox.  Ill add this issue to the punchlist for next week.  For now when you tithe from the UI, it tries to make it a Sower Tithe or it fails.  You can only donate to the foundation now by manually pasting the address in (if its more than the difficulty max).





  • Rob Andrews
  • Administrator

    • 4147


    • 97
    • June 05, 2017, 08:09:04 PM
    • Patmos, Island Of
    more
Re: Testnet - Test Proof of Giving
« Reply #3 on: December 07, 2018, 01:56:26 PM »
Regarding the coexistence of PODC + POG, where Thesnat raised the issue that PODC updates will spend the coin-age and consolidate the wallet:

I have one solution so far - this may not be the most elegant but I think it works for v1.0.  We will mark the bill denominations created in 'exec bankroll' with a suffix of ".000000001" (IE a 1milli_bbp suffix).  This suffix can be used in PODC_Update to determine if it should skip by those bills - and that saves   them for tithing.



  • sunk818
  • Developer

    • 521


    • 36
    • April 24, 2018, 02:02:20 PM
    more
Re: Testnet - Test Proof of Giving
« Reply #4 on: December 07, 2018, 03:55:57 PM »
Can I change your validation rules and compile a new wallet to game pog? What counter measures exist to prevent this?
BH6oxjLkyz3z8FYpvU3ZR7PTZ31Xt9DkXZ


Re: Testnet - Test Proof of Giving
« Reply #5 on: December 07, 2018, 04:00:56 PM »
Can I change your validation rules and compile a new wallet to game pog? What counter measures exist to prevent this?

Validation rules would have to be accepted by the network, so changing 1 client would not have a significant impact.



  • Rob Andrews
  • Administrator

    • 4147


    • 97
    • June 05, 2017, 08:09:04 PM
    • Patmos, Island Of
    more
Re: Testnet - Test Proof of Giving
« Reply #6 on: December 07, 2018, 04:11:11 PM »
Can I change your validation rules and compile a new wallet to game pog? What counter measures exist to prevent this?

TheSnat is correct.

To expand on that, you cannot.  Why?  Because if you change the validation rules by .01 bbp, the pool will not agree with the other clients and you will fork onto your own chain.  (See InductLegalTithe).


You can try to game the system as a whale though, but I just added exec bankroll, so I dont think you will get very far in that endeavor.

Its almost ready, it passed the LAN test.



  • Rob Andrews
  • Administrator

    • 4147


    • 97
    • June 05, 2017, 08:09:04 PM
    • Patmos, Island Of
    more
Re: Testnet - Test Proof of Giving
« Reply #7 on: December 07, 2018, 04:13:48 PM »
1.1.6.2e - BiblePay - TestNet
Mandatory Upgrade for TestNet


POG2 is ready for testing!

Please, optionally set your nickname= in the config files.



PS - you should not need an addnode (testnet.biblepay.org) is compiled in the client.

PS II - We will need to bring some sanctuaries online also for later phases of testing - this is because to test all test cases, we must cover Sanc payments that have POG pool payments piggybacked in.  (IE the client has one code path for Missed sanc payments and another for Sanc payments).  Both of these have POG pool payments.  Superblocks are not as important (although we need to test them) but Im confident superblocks wont pay the POG recipients as Snat and I went through this recently for a different reason (superblocks pay the reaper only the entire heat reward).


*** WINDOWS HAS BEEN RELEASED ***

« Last Edit: December 07, 2018, 08:07:44 PM by Rob Andrews »


  • klondike
  • Full Member

    • 157


    • -10
    • October 10, 2017, 09:00:24 AM
    more
Re: Testnet - Test Proof of Giving
« Reply #8 on: December 08, 2018, 02:01:12 AM »
where is any tutorial for it? this is harder understand like easy PODC

every 2nd word dont understand  >:(


  • klondike
  • Full Member

    • 157


    • -10
    • October 10, 2017, 09:00:24 AM
    more
Re: Testnet - Test Proof of Giving
« Reply #9 on: December 08, 2018, 02:18:42 AM »
this is questions:

MANUAL TITHING:


Method 1 - QT: To tithe manually, go to the QT send money page, and click Donate to foundation.  At this point the POG difficulty parameters will appear on the screen.  Select the appropriate tithe amount and click send.  If the coins are not old enough or high enough in value, an error will appear.

dont see anything DONATE FOUNDATION

Method 2 - RPC:  From the RPC console, type 'exec tithe amount'.
If the tithe fails, a reason will be given.

typed and

exec tithe amount
09:10:12
You must specify amount, min_coin_age (days), min_coin_amount.  IE: exec tithe 200 1 1000. (code -1)

what is this?




i tried

09:12:04
exec tithe 1000 1 1000
09:12:04
Unable to locate coins older than minimum_tithe_coin_age. (code -4)

next i tried
09:13:38
exec showblock blocknumber
09:13:38
{
  "Command": "showblock",
  "Error": "Unknown command: showblock"
}


then i tried



  • klondike
  • Full Member

    • 157


    • -10
    • October 10, 2017, 09:00:24 AM
    more
Re: Testnet - Test Proof of Giving
« Reply #10 on: December 08, 2018, 02:19:23 AM »
nobody want this shit POG!!!!!!! this tutorial is shit,and big ..... pls stop posting this to BTT cos all will be lauging on it


  • klondike
  • Full Member

    • 157


    • -10
    • October 10, 2017, 09:00:24 AM
    more
Re: Testnet - Test Proof of Giving
« Reply #11 on: December 08, 2018, 02:20:16 AM »
tested 3 commands and 3 any bugs .... wonderfull  >:(


  • klondike
  • Full Member

    • 157


    • -10
    • October 10, 2017, 09:00:24 AM
    more
Re: Testnet - Test Proof of Giving
« Reply #12 on: December 08, 2018, 02:23:32 AM »
  ::) ::) ::)


  • klondike
  • Full Member

    • 157


    • -10
    • October 10, 2017, 09:00:24 AM
    more
Re: Testnet - Test Proof of Giving
« Reply #13 on: December 08, 2018, 02:24:31 AM »
excellent forum,when i cant modify/editing old topics

what is minimum old coins in wallet? i have almost 3 months 300 000 bbp in wallet?


  • klondike
  • Full Member

    • 157


    • -10
    • October 10, 2017, 09:00:24 AM
    more
Re: Testnet - Test Proof of Giving
« Reply #14 on: December 08, 2018, 02:33:26 AM »
Quote
The Proof-of-giving difficulty level will be available in the wallet.
It will display:
min_coin_age:  This is the minimum age in days a coin is eligibile for tithing.
min_coin_amount: This is the minimum coin amount eligibile for tithing.
max_tithe_amount:  This is the maximum allowed tithe amount.

where will be? where i can find
1.min age
2.min amount
3.max amount

give here this simple commands,cos you are good coder,but very bad teacher