News:

F7000 COMING SOON!

Main Menu

Testnet - Test Proof of Giving

Started by Rob Andrews, December 06, 2018, 01:00:46 PM

Previous topic - Next topic

mint

Quote from: Rob Andrews on December 19, 2018, 11:59:28 AM
Thanks for the example.  On a side note we have a feature in the next version that will allow you to type exec pogpool height, and diagnose some of this , although that feature is broken right now in your version.  But anyway looking at your wallet and its rewards, you received the first POG reward on block 91097 for 97.09 bbp. 

So here is what happened:  Those two pog rewards are incorrectly listed as POG reward on the UI.  They are actually mining rewards.  If you look at the actual transaction, the 97.09 was the reaper reward for solving the block .

So I see the bug, and its being fixed now (as far as the display issue).  Please double check in the next version that we killed it - those two should change to Mining rewards when you boot the next version.

They are Mining rewards as they should be. Still wondering reward of 97.09 which 2 % of total. Is this correct. I have not donated from this wallet at all.

klondike

setgenerate true doesnt working in testnet wallet btw

Rob Andrews

Quote from: mint on December 20, 2018, 07:47:52 AM
They are Mining rewards as they should be. Still wondering reward of 97.09 which 2 % of total. Is this correct. I have not donated from this wallet at all.

Great!  I'm glad these two UI decriptions changed over to Mining Reward from POG reward.

On the amount of 97.09, that is the correct reaper reward for that block: 20% of the heat mining reward (after Sanc was paid) is only 97.09.  (Sanc gets 4500 or so, 20% of the roughly 450 heat mining reward is 97.09).


Rob Andrews

Quote from: klondike on December 20, 2018, 09:17:44 AM
setgenerate true doesnt working in testnet wallet btw

It still works; when I do 'setgenerate false', I can see in 'getmininginfo' the hashcounter stops.  So it appears we didnt break the existing genproclimit or setgenerate for POBH.

klondike

when i set SETGENERATE TRUE 12 my cpu didnt overload, still 2%

Rob Andrews

Quote from: klondike on December 20, 2018, 01:51:24 PM
when i set SETGENERATE TRUE 12 my cpu didnt overload, still 2%

Try minersleep=0, and see if it overloads?

EDIT: default is 325ms

klondike


Rob Andrews

Quote from: thesnat21 on December 21, 2018, 05:30:02 AM
Woke up this AM wallet was closed..
heres debug log



2018-12-21 06:35:10

ProcessBlockFound::Generated 4782.6984526
2018-12-21 06:35:10 ERROR: ProcessBlockFound -- generated block is stale
2018-12-21 06:35:13 UpdateTip: new best=ce85f07771c8b26df128b557e4f7131e9ce2dbfa91efae999125bc8fb2118ba1  height=93330  log2_work=44.351064  tx=100651  date=2018-12-21 06:35:10 progress=1.000000  cache=0.4MiB(1254tx)
2018-12-21 06:35:13 ProcessNewBlock : ACCEPTED
2018-12-21 06:35:35 Misbehaving: 172.245.93.118:51750 (0 -> 14)
2018-12-21 06:36:29  CreateTransaction::Requiring specific coin age 12.170000 and coin amount 5070 keypool added key 2059, size=1001
2018-12-21 06:36:29 init message: Loading wallet... (205.69 %)
2018-12-21 06:36:30 CommitTransaction:
CTransaction(hash=7d61ef23c0, ver=1, vin.size=1, vout.size=2, nLockTime=93330)
    CTxIn(COutPoint(9e51b8c060d9625be5107b9c1499c05a0583902c0c36ceaafec34f4396446337, 1), scriptSig=47304402205bdc80eb721dfb, nSequence=4294967294)
    CTxOut(nValue=215.10000000, scriptPubKey=76a9149cff090c148949e19f4ed915)
    CTxOut(nValue=4864.05072207, scriptPubKey=76a91454ec8b20a625794e64a8d94e)
2018-12-21 06:36:30 committing Tx with message <TITHER>yaSJ9FdsPcQvGjyrzxVFUPjg6wkJBQwaxc</TITHER><NICKNAME>thesnat1</NICKNAME><TITHESIGNER>yaSJ9FdsPcQvGjyrzxVFUPjg6wkJBQwaxc</TITHESIGNER>

2018-12-21 06:36:30 keypool keep 1059
2018-12-21 06:36:30 AddToWallet 7d61ef23c0c5e35b95f0027666ab565636d9d28ef04a3994b4b5aa175717948c  new
2018-12-21 06:36:30 AddToWallet 7d61ef23c0c5e35b95f0027666ab565636d9d28ef04a3994b4b5aa175717948c 
2018-12-21 06:36:30
BiblePayMiner::SendTithe::Sent Tithe in amount of 215.100000 UpdateTip: new best=90aa5cdcc19e650af6cb401fd97b108830374dd46c6a534a3ee2f99557627c18  height=93331  log2_work=44.351069  tx=100653  date=2018-12-21 06:37:18 progress=0.999999  cache=0.4MiB(1257tx)
2018-12-21 06:37:27 AddToWallet 7d61ef23c0c5e35b95f0027666ab565636d9d28ef04a3994b4b5aa175717948c  update
2018-12-21 06:37:27 ProcessNewBlock : ACCEPTED
2018-12-21 06:38:05 UpdateTip: new best=a8986610180fba1c8ef1d9ae3cd10ab255720d0c10bdee593666b440bb7d3aff  height=93332  log2_work=44.351073  tx=100654  date=2018-12-21 06:37:54 progress=0.999999  cache=0.4MiB(1258tx)
2018-12-21 06:38:05 ProcessNewBlock : ACCEPTED
2018-12-21 06:38:44 CBlock(hash=6b7a9c46945f5d4626052671edb6d441fda24c1cae318b48458670f00e35b66c, ver=536870912, hashPrevBlock=90aa5cdcc19e650af6cb401fd97b108830374dd46c6a534a3ee2f99557627c18, hashMerkleRoot=8d4903f63322ff79a9b976d088f87eafb9736a52108069bfa113b272669c8eef, nTime=1545374268, nBits=1d4a74fd, nNonce=2890, vtx=1)
  CTransaction(hash=8d4903f633, ver=1, vin.size=1, vout.size=1, nLockTime=0)
    CTxIn(COutPoint(0000000000000000000000000000000000000000000000000000000000000000, 4294967295), coinbase 03946c010101)
    CTxOut(nValue=4782.69837500, scriptPubKey=2102bdba9679c392117be261f88dbb)


2018-12-21 06:38:44

ProcessBlockFound::Generated 4782.698375
2018-12-21 06:38:44 ERROR: ProcessBlockFound -- generated block is stale
2018-12-21 06:38:52 Misbehaving: 195.201.30.231:60048 (0 -> 14)
2018-12-21 06:41:30 UpdateTip: new best=585a00d9c7f6a089ab8dc8976cda109bae3b88def6775963cf816b613da3b659  height=93333  log2_work=44.351079  tx=100655  date=2018-12-21 06:41:25 progress=0.999999  cache=0.4MiB(1259tx)
2018-12-21 06:41:30 ProcessNewBlock : ACCEPTED
2018-12-21 06:41:50 UpdateTip: new best=1b87b8274c8572e47a490723752870fdc7976fe2f53b4ab65b9c47a983fbe15c  height=93334  log2_work=44.351082  tx=100656  date=2018-12-21 06:41:44 progress=0.999999  cache=0.4MiB(1260tx)
2018-12-21 06:41:50 ProcessNewBlock : ACCEPTED
2018-12-21 06:42:40  CreateTransaction::Requiring specific coin age 12.430000 and coin amount 5178 2018-12-21 11:27:15




Nothing can be seen in the log but I think I got that bug in the upcoming version with chat.
Lets try again on the next version otherwise someone will have to run it in valgrind to get the line number.

Building....


Rob Andrews

Explanation of In-Wallet Chat


The original idea for in-wallet chat was born from this hypothetical idea:  Can we add a "Get Saved" button to the core wallet.  The Get Saved button would appeal to those seeking Jesus, but have never actually been saved.  A person might use it who is too shy to respond to an altar call, or maybe they will go through the process with us and we will help them understand what it means, then encourage them to get saved at church, etc.  But I envisioned having a list of on-call priests capable of helping a person get saved, and if all of our Priests are offline, the "call for the priest" redirects the user to a web page with a list of Getting Saved resources (we might have 5 different to choose from - Billy Graham, Cioccolanti, Jesus-Christ.US, etc, and the user clicks from there).  Of course, this flow requires us to have an in-wallet paging system to reach the priest, a list of on-call priests maintained in some type of 'registration' system in the chain, a chat initiation, a ringer, the ability for the priest to answer and chat with the user etc.  This led to in-wallet chat; why don't we create the first native bitcoin chat client object so we can re-use this (IE in other coins, and of course for our purposes-   General Chat Room, Private Chat, Page a Priest, Chat about a Proposal, etc).

So moving on, in version 1.0, we now have a General Chat Room and a Private Message Chat.

Note that you must set up your nickname in the config file first - set "nickname=your-name" and reboot.

PRIVATE MESSAGING


When you click Chat | PM, the wallet will ask you for the destination recipient nickname.  Enter one that you know (from POG).  The wallet will then Page the recipient 4 times, once per second.  What is happening on the other end of the line is the recipient wallet will receive the request as long as their qt wallet is open and connected, even if their chat windows are closed, and will spring up a new chat window.  This particular conversation is private between you and the recipient (however note that the actual messages are sent through the biblepay-network of nodes - and the messages are not currently encrypted - we will look into that issue later).

PUBLIC CHAT ROOM

When you click Chat | General, the wallet opens up a General chat room (we made this Chat object in a way that we will be able to have more rooms in the future).  Anyone who enters the chat *during* the conversation will be seen as such-and-such entered the chat room.  All participants can see the chat (as you might expect).

Version 1.1.7.1 is required to test this chat feature.

(Should be ready in approx 1 hour).


Rob Andrews

1.1.7.1
Mandatory Upgrade for TestNet


- Enabled Chat v1.0
- Fixed bug in POG (between 1.1.6.9 and 1.1.7.0)

Rob Andrews

Quote from: thesnat21 on December 22, 2018, 07:28:04 AM
Had chat open woke client had crashed when I got up this AM
Similar debug log.

Chosen Sanctuary - pulling down the DCC file... Aggregator 0.000000, Percentile -100.000000
2018-12-22 04:30:51 Filter File 94258ExecuteDistributedSanctuaryQuorum::Error - Unable to download DC file DCC input file does not exist. UpdateTip: new best=e34ecae5cb3257553e149610f93e4a5063d35e47f6d3e3533a67b1e87ae79280  height=94212  log2_work=44.376297  tx=101663  date=2018-12-22 04:30:52 progress=1.000000  cache=0.7MiB(2369tx)
2018-12-22 04:30:52 AddToWallet c71fffd5a318a20cfe6f92144a740bb8eb92caa82d614a89409cbe433f899b44  new
2018-12-22 04:30:53 ProcessNewBlock : ACCEPTED
2018-12-22 04:30:56  DCC hash 0000000000000000000000000000000000000000000000000000000000000000  Age 4.000000  FileTimeStamp 1545453056.000000   IsOld  No
Chosen Sanctuary - pulling down the DCC file... Aggregator 0.000000, Percentile -100.000000
2018-12-22 04:30:56 Filter File 94258ExecuteDistributedSanctuaryQuorum::Error - Unable to download DC file DCC input file does not exist. ProcessNewBlock : ACCEPTED
2018-12-22 04:31:01 Misbehaving: 172.245.93.118:34292 (0 -> 14)
2018-12-22 04:31:51  CreateTransaction::Requiring specific coin age 12.220000 and coin amount 5091


I need to find a debugger that works in windows..  I don't have access to a linux PC that has any power currently.

The source code needs to be on the machine and compiled for valgrind to work; so windows is not an option (short of installing a few hundred gigs of environment and configuring for 14 days), however it *is* possible for you to copy your wallet.dat and chainstate files out to a linux box and re-run the environment in linux in valgrind. 

Btw, the default valgrind flags work:  apt-get install valgrind,    "valgrind ./biblepay-qt"   etc.

I realize you dont have the linux host however.  We'll have to see if the problem rears its head - Im running 3 nodes and none have crashed so far  on the new version; ill keep looking.





Rob Andrews

So TheSnat & I tested chat and it appears to work.  I've been monitoring for Illegal tithes and POG recipients invalid and I believe we have squashed those two bugs.

I havent heard of any possible attack vectors with POG, and it appears to be relatively solid now.  No community member has been able to challenge the algorithm for flaws, or further the assessment (that it wont be possible to design or test a new novel algorithm).  I think we have designed and tested a new novel algorithm and we are now in the final stretch of testing.  As far as stress testing it, my stress test passed (diff peaked and dropped after working through).   

The system relies on us paying approx 100K per day in miner heat rewards, and accepts approx 50K per day in donations.  You have to be careful as a giver not to give all your tithes in one block or you will incur a net loss (which, could be viewed as a positive as we dont want to reward hogs as we are a Christian Crypto).  Small givers who end up in multiple tiers per day will be more profitable.

So what I plan on doing next is taking the training wheels off.  We have been logging violations of invalid pog recipients - but not enforcing those in testnet so as to not fork.  By taking the wheels off I mean we will start enforcing those conditions.

So please ready yourselves for v 1.1.7.2 which will be a mandatory, with training wheels removed.


Rob Andrews

1.1.7.2 - Mandatory Upgrade for TestNet

- Remove training wheels in TestNet (Enforce block fork rules)
- Add feature to Chat to show a user has left the chat room


EDIT:  This is a placeholder, building now....



orbis

Hi all  :)
I'm back :)
So, I'm still here (still big fan of BBP), but my time for forums is "limited".
Sometimes I read it, but I'm sure, that I've something missed :)
Now lets get back to main point of this reply :D

I think, that I've read all about POG, but I'm still confused (sorry Rob) :)
Maybe it's language barrier, but I'm still not able to understand it all and for me is simpler to explain for newbies PODC like POG :D
POG is interesting idea, but Rob if it should be for non IT peaple it needs some "modification". Now I'll try to write my observations.
1. First of all... no "exec" commands. Commands are not for newbies and normal people. Exec pogpool is nice command but for normal people it must be inside GUI wallet (normal people don't use headless wallet). It will be nice to have one part of menu with POG (like "Distibuted computing" for PODC now). I still don't know if POG replace PODC at all or not. If yes, you could use this GUI wallet part and it will be easier for you to modify it. My idea is to divide pogpool command to two parts. First one would be list of users in pool and second part would be tier list with user stats. Now it's no problem to have it together but imagine output of this command when there will be 100 and more users ;) It must be comprehensible for newbies and trust me "exec" command is not so clear. Normal users wants all visible with one click on button.
2. Automatic tithing. That was really pain in my neck :D I had old wallet with old config and it was not working for me. I've tried all what I've found in testnet topic, but I wasn't successful. At the end I was able to auto tithe but...
2a. Again for normal (translate it like me :)) users it must be somewhere in config options just to check "want to participate in POG mining", second option would be frequency and third would be max amount - maybe not everyone wants to participate with max_tithe. Maybe it may be like step by step guide on first wallet run and then just part of config and in that wallet part in my point 1 it may be button for this config.
2b. My biggest problem with auto tihing was that my wallet is locked. It looks that you must have unlocked wallet for auto tithing. My presumption was that PODC startup unlock window unlock it for POG too. Maybe you can use it for POG unlock too.  And modify "-headlesspodcpassword exec podcpasswordlength" in headless too.
2c. How it's with auto tithing when there are no suitable coins at tithe time? It will wait for next tithe time (default 4 hours) or it will try in few minutes again? I'm not sure what will be better, but those "force" trying sounds better for me.
3. Manual tithing. I like the info when you check "Donate to foundation?", but ... :D It would be better to have two different checkboxes. First would be "Donate to foundation?" - this sould be real donation without any limitation. Second would be "POG tithe" with all limitation. And this "POG tithe" may be again on my point 1 wallet part.
4. "exec titheinfo". Again nice info but inside exec commands. It would be nice to have it in some popup window after button click. Of course with explanations of each part (maybe on mouse hover).
5. "coin_age" could be disadvantage for new users. It must be clearly said that new user can start not right after buying coins (and sending to wallet) but they must wait for right coin age. When I started testnet after few months I wasn't able to sync and I ran reindex and zapwallettx.. and now almost all of my coins has same coin age eg. coins has 85766 to 91501 confirmations but they are all with same age and date "12.12.2018 21:36" (I don't know if it is bug or not). So many times I wasn't able to tithe because I don't meet the age criteria because avg min_coin_age was aroun 9.5 days. Maybe "exec getdimensionalbalance 0 1" could be next button with popup window in GUI wallet ;)
6. I tested it in more ways, but I'm still not able to understand how it works :) and I have few questions:
6a. How to get to exact payment tier (how many coins i need to tithe)? - because in some tiers can be more or less users.
6b. It is any advantage to get to other tier?
6c. How exactly count my ROI? It is possible to say e.g. "when I tithe XXX BBP and now there are YYY users, my reward will be ZZZ BBP? I think this is neccessary for new users to tell them abou ROI. I saw in titheinfo lowest and highet ROI, but it is really  huge difference (e.g. 78 - 780%) and it is not clear how many coins I get back.
6d. At the beginning there will be only old users, so many coins with high coin_age. I have tried to make as many manual tithes as I was able within one block. I've made 8 tx within one block and the coin_age didn't change. After new block appears I wasn't able to tithe because my coin_age didn't meet the criteria. It was experiment, because I knew that I'm on the edge of criteria. So, is it possible that someone will abuse this? Will it be problem for others? Because at the beginning I have 0 BBP in tithes and after that around 2000 BBP. That is more like with basic autotithe. And in prod are block longer, so you have more time to make more tx :)
6e. When there is max tithe (eg 250 BBP) and someone use basic autotithe (4 hours) you can tithe approx 1500 BBP (6 x 250). So if they create more wallets and divide it with "exec bankroll" with e.g. 22500 BBP (max min_coin_amount :)) will he be in advantage or not?
7. Next remarks, not questions :D In my nest test there was maxTithe 255 BBP and I tried to send 300.. in GUI it was OK (TX creation failed with popup "your tithe exceeds...") but in console with "exec tithe 300" it was successful (TXID: 899762855682e7dc3294c461608895451ca93fd6749ed2a8d69383a1734681f2) but it was not counted in "My tithes". I think it should be canceled like in GUI with error message.
8. In testnet main topic in "test cases" part you wrote "exec showblock blocknumber". It should be without exec ;)
9. On wiki Proof-of-Giving-for-Beginners in POG Difficulty Algorithm section there is part "see the POG wiki for ...". It will be good to give there link to exact page because it is really bad experience to find exact article in this wiki.
10. Back to PODC. How it is? Will be PODC there with POG or not? If not, why PODC still remains in testnet? If YES or if NO how will be the distribution of rewards?
11. That chat is really fun part (but for now it is empty :) ) I know that it is just "alpha release" but chat window is still on top over main wallet window, without option to minimize (it will minimize with main window), so you cannot leave it open on background if you want and maybe that is the point why it is still empty :)
Ok :D It looks, that I wrote more than I want :D I prepared it for more days, but this surprised me too :D At the end. I'm happy that you're still working on BBP and trying to be more attractive for users. My opinion is that we don't need more miners, but more customers. This may help it, but It must be user friendly and it must be really good explained that why is better way to donate charities with BBP like with FIAT. And maybe tithing in churches would be good way how to promote BBP.
Whatever it is, I wish you all peaceful and blessed Christmas with your families or the closest. Have a nice holiday and fruitful new year.

Rob Andrews

Quote from: orbis on December 23, 2018, 12:49:46 PM

10. Back to PODC. How it is? Will be PODC there with POG or not? If not, why PODC still remains in testnet? If YES or if NO how will be the distribution of rewards?
Whatever it is, I wish you all peaceful and blessed Christmas with your families or the closest. Have a nice holiday and fruitful new year.

Hi Orbis,

Welcome back!  Im glad to see you are still around also, thanks for coming back!  Merry Christmas to you too.

Note that we are getting ready for the Canada trip so I can only answer these one at a time (Nathaniel, please feel free to pull individual questions and help if you can), anyway, on PODC:

So we are trying to get a community feel on this in phases.  So far we have only voted and gained acceptance for using POG in the scope of replacing POW heat mining.  POW heat mining is currently using POBH, and requires a signed cpid.  With POG, it modifies this requirement to still use POBH for our hashing algorithm, but instead of POW rewards going to the miners who heat mine, instead the pool of 100K daily payments goes 20% to the reaper and 80% to the POG mining pool.  This way, we can still keep PODC for a while, live in prod, and check a baseline on "easy adoption" new participant influx.

Yes, as far as exec, good point, I agree with most of your points, but Ill have to elaborate a little more as I have time.

So if we go live at the end of Feb in prod, it would be POG to replace heat mining, with PODC still live in prod.