Bitcoin Forum
November 21, 2017, 08:48:25 AM *
News: Latest stable version of Bitcoin Core: 0.15.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: « 1 ... 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 [155] 156 157 158 159 160 161 162 163 164 165 166 167 168 169 »
  Print  
Author Topic: [ANN][YAC] YACoin ongoing development  (Read 349191 times)
old c coder
Sr. Member
****
Offline Offline

Activity: 252



View Profile
September 13, 2015, 05:18:00 PM
 #3081

Hello all,

It seems the big reorganizations that happen from time to time may have been what was causing my block explorer to fail!!

Since I keep the last 10 blocks (by height) in real time, when a reorganization of more than 10 blocks comes by, the code can get confused to say the least Grin  Also (and you can see it in the code) when I read the block from "disk" to get the details:  block.ReadFromDisk(...  I didn't check for errors Sad  I think during a reorganization, trying to find a newer block in a now orphaned chain, may cause problems!?

Anyway, it seems to be working now. about 24 hours and all is OK.

Does anybody know roughly what times during what days the reorganizations take place, so that I can have the code running and try to watch it as it happens?

Ron

BTC: 1DPvP6WoZzaNQ9Nxzd64hjYad1kyQzTTbx YAC: Y3ZggXDvnRJaRwtVGyGJwt6DMLN3EPQpQf 
The day is coming when a single carrot, freshly observed, will set off a revolution.  Paul Cezanne
1511254105
Hero Member
*
Offline Offline

Posts: 1511254105

View Profile Personal Message (Offline)

Ignore
1511254105
Reply with quote  #2

1511254105
Report to moderator
1511254105
Hero Member
*
Offline Offline

Posts: 1511254105

View Profile Personal Message (Offline)

Ignore
1511254105
Reply with quote  #2

1511254105
Report to moderator
1511254105
Hero Member
*
Offline Offline

Posts: 1511254105

View Profile Personal Message (Offline)

Ignore
1511254105
Reply with quote  #2

1511254105
Report to moderator
Join ICO Now A blockchain platform for effective freelancing
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1511254105
Hero Member
*
Offline Offline

Posts: 1511254105

View Profile Personal Message (Offline)

Ignore
1511254105
Reply with quote  #2

1511254105
Report to moderator
alenevaa
Sr. Member
****
Offline Offline

Activity: 288



View Profile WWW
September 14, 2015, 08:05:52 AM
 #3082

Does anybody know roughly what times during what days the reorganizations take place, so that I can have the code running and try to watch it as it happens?
Hello Ron!

You can see exact times when it happened in file debug.log
Here is last reorganizations for more than 10 blocks:

Code:
REORGANIZE: Disconnect 45 blocks; 00000be0cf1c48e6021d..062adb1dfe9538b20d1d
REORGANIZE: Connect 108 blocks; 00000be0cf1c48e6021d..000007151b6b477cc653
SetBestChain: new best=000007151b6b477cc653  height=1211021  trust=18960539627560  date=09/12/15 14:47:19

REORGANIZE: Disconnect 212 blocks; 0000016586d770c8392f..90e0ef8b337a9dba40be
REORGANIZE: Connect 514 blocks; 0000016586d770c8392f..00000268b3bc779337f0
SetBestChain: new best=00000268b3bc779337f0  height=1211606  trust=18960539628145  date=09/13/15 07:25:15

REORGANIZE: Disconnect 19 blocks; 0000015f5b9377802799..9456041eac0982404405
REORGANIZE: Connect 48 blocks; 0000015f5b9377802799..00000932bab4631cc252
SetBestChain: new best=00000932bab4631cc252  height=1211797  trust=18960539628368  date=09/13/15 10:31:10

REORGANIZE: Disconnect 15 blocks; 00000f0c480c063abee6..a4870fba9c917a93a0b2
REORGANIZE: Connect 38 blocks; 00000f0c480c063abee6..0000096bcfb49798081b
SetBestChain: new best=0000096bcfb49798081b  height=1211846  trust=18960539628417  date=09/13/15 11:35:26

REORGANIZE: Disconnect 13 blocks; 0000096bcfb49798081b..90fcac05439e38ec019b
REORGANIZE: Connect 33 blocks; 0000096bcfb49798081b..000006a52d8373f5612b
SetBestChain: new best=000006a52d8373f5612b  height=1211879  trust=18960539628450  date=09/13/15 12:18:10

REORGANIZE: Disconnect 11 blocks; 000003c52f86fb354db0..37d84757cd39128be7b8
REORGANIZE: Connect 28 blocks; 000003c52f86fb354db0..000004169a45f3e45c3a
SetBestChain: new best=000004169a45f3e45c3a  height=1211921  trust=18960539628492  date=09/13/15 13:08:55

REORGANIZE: Disconnect 94 blocks; 000004169a45f3e45c3a..36da65320eecca01a631
REORGANIZE: Connect 233 blocks; 000004169a45f3e45c3a..00000e3405ad25c4121a
SetBestChain: new best=00000e3405ad25c4121a  height=1212154  trust=18960539628725  date=09/13/15 18:55:21

So you can try to watch it as it happens every hour..  Smiley

██████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
█████████████████████
████████████████████████
████████████████████████
██████████████████████
██████████████████████
███████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
██████████████████████
|
WINGS           
Where DAO Unicorns are born
|
.
1st Bitcoin & Ethereum DAO for DAOs
1st Decentralized Chatbot to Smart Contracts Interaction System

|
.
Wings Bounties Earn Eggs
X-Blockchain DAO

old c coder
Sr. Member
****
Offline Offline

Activity: 252



View Profile
September 14, 2015, 09:12:39 PM
 #3083

Does anybody know roughly what times during what days the reorganizations take place, so that I can have the code running and try to watch it as it happens?
Hello Ron!

You can see exact times when it happened in file debug.log
Here is last reorganizations for more than 10 blocks:

Code:
REORGANIZE: Disconnect 45 blocks; 00000be0cf1c48e6021d..062adb1dfe9538b20d1d
REORGANIZE: Connect 108 blocks; 00000be0cf1c48e6021d..000007151b6b477cc653
SetBestChain: new best=000007151b6b477cc653  height=1211021  trust=18960539627560  date=09/12/15 14:47:19

REORGANIZE: Disconnect 212 blocks; 0000016586d770c8392f..90e0ef8b337a9dba40be
REORGANIZE: Connect 514 blocks; 0000016586d770c8392f..00000268b3bc779337f0
SetBestChain: new best=00000268b3bc779337f0  height=1211606  trust=18960539628145  date=09/13/15 07:25:15

REORGANIZE: Disconnect 19 blocks; 0000015f5b9377802799..9456041eac0982404405
REORGANIZE: Connect 48 blocks; 0000015f5b9377802799..00000932bab4631cc252
SetBestChain: new best=00000932bab4631cc252  height=1211797  trust=18960539628368  date=09/13/15 10:31:10

REORGANIZE: Disconnect 15 blocks; 00000f0c480c063abee6..a4870fba9c917a93a0b2
REORGANIZE: Connect 38 blocks; 00000f0c480c063abee6..0000096bcfb49798081b
SetBestChain: new best=0000096bcfb49798081b  height=1211846  trust=18960539628417  date=09/13/15 11:35:26

REORGANIZE: Disconnect 13 blocks; 0000096bcfb49798081b..90fcac05439e38ec019b
REORGANIZE: Connect 33 blocks; 0000096bcfb49798081b..000006a52d8373f5612b
SetBestChain: new best=000006a52d8373f5612b  height=1211879  trust=18960539628450  date=09/13/15 12:18:10

REORGANIZE: Disconnect 11 blocks; 000003c52f86fb354db0..37d84757cd39128be7b8
REORGANIZE: Connect 28 blocks; 000003c52f86fb354db0..000004169a45f3e45c3a
SetBestChain: new best=000004169a45f3e45c3a  height=1211921  trust=18960539628492  date=09/13/15 13:08:55

REORGANIZE: Disconnect 94 blocks; 000004169a45f3e45c3a..36da65320eecca01a631
REORGANIZE: Connect 233 blocks; 000004169a45f3e45c3a..00000e3405ad25c4121a
SetBestChain: new best=00000e3405ad25c4121a  height=1212154  trust=18960539628725  date=09/13/15 18:55:21

So you can try to watch it as it happens every hour..  Smiley
Thanks,
 
(as he hits himself about the side of the head and says, I should have looked at the code  Grin ) I usally run -printttoconsole to get "live" stuff, and if one blinks it is gone!  Also since the problem, which is now solved (yay), only happens in Yacoin-qt, it is hard to catch it in real time and I never seem to get as good a debug log in Qt as in the daemon, for Yacoin or bitcoin Huh AAMOF, I usually don't get any debug log in any Qt?  Maybe I'm not looking in the right place?

Now I need to do yet another pull request on YAC 0.4.4 &/or YAC 0.4.5 (Is anyone running 0.4.5?) and do another video like the last one, but this time with sound!

Ron

BTC: 1DPvP6WoZzaNQ9Nxzd64hjYad1kyQzTTbx YAC: Y3ZggXDvnRJaRwtVGyGJwt6DMLN3EPQpQf 
The day is coming when a single carrot, freshly observed, will set off a revolution.  Paul Cezanne
alenevaa
Sr. Member
****
Offline Offline

Activity: 288



View Profile WWW
September 15, 2015, 12:05:32 PM
 #3084

Also since the problem, which is now solved (yay), only happens in Yacoin-qt, it is hard to catch it in real time and I never seem to get as good a debug log in Qt as in the daemon, for Yacoin or bitcoin Huh AAMOF, I usually don't get any debug log in any Qt?  Maybe I'm not looking in the right place?

Congratulations on your solution! What was the problem?

debug.log is stored in Yacoin data directory (where Yacoin's data files are stored, including the wallet data file).

Windows
C:\Users\YourUserName\Appdata\Roaming\Yacoin

Linux
~/.yacoin/

██████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
█████████████████████
████████████████████████
████████████████████████
██████████████████████
██████████████████████
███████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
██████████████████████
|
WINGS           
Where DAO Unicorns are born
|
.
1st Bitcoin & Ethereum DAO for DAOs
1st Decentralized Chatbot to Smart Contracts Interaction System

|
.
Wings Bounties Earn Eggs
X-Blockchain DAO

aso118b
Newbie
*
Offline Offline

Activity: 15


View Profile
September 16, 2015, 12:42:00 AM
 #3085

Hey guys,

TLDR; Its 'aso118' and I need help solo mining.

My account got hacked a few months ago and I've tried contacting BCT admins several times but they haven't returned a single message.  Needless to say I am highly frustrated.  I understand they they probably get lots of SPAM emails and were reluctant to 'waste their time' to help me.  I hate to lose my account, and see the state it is in, but its water under the bridge.  I've been trying to get on yacointalk but it says I am banned from there too.  In my ignorance when YAC launched in 2013, I used the same password for both forums and I'm guessing my account on yacointalk was also hacked.  Regardless its time to move on; water under the bridge right?

So, I've been keeping a very very close eye on YAC discussion here and elsewhere, and I am still mining every day.  Like several other's I have been mining on http://yac.erlog.pt/, but I am annoyed that I haven't received a pay out in 35 days and I've sent 3 emails only to get no reply from the pool owner.  I have thousands of YAC on the pool and am beginning to question the motivates of the pool owner.  Would you continue to work after not betting paid in over a month?

So, I tired solo mining (yet again).  And I've spent the last three hours trying to 'set it up' with no luck (you may remember - I'm not very tech savvy).  My wallet it fully synced (I never close it!) and I'm using Thirtybird's cpu miner along with the following conf.

Code:
rpcuser=*my_user_name_here*
rpcpassword=*my_password_here*
rpcallowip=127.0.0.1
rpcport=3433
port=7688
daemon=1
server=1
gen=1
genproclimit=-1

I've tried several dozen config files from all of the google searches; but this is my 'current' one.  My script for the cpu miner is as follows.

Code:
@echo off

echo Mining script was last updated on 7:38 PM 9/15/2015.

echo.
echo Enter the number of threads to mine with.
set /p threads=

cd "C:\Mining\minerd-yacoin_stratum_x86_2_4_0"
start minerd-x86-corei7.exe -a scrypt-jane -t %threads% -s 2 -o stratum+tcp://127.0.0.1:3433 -u *my_user_name_here* -p *my_password_here*

I've been a fatful YAC miner since day one, and I just want to be able to mine AND receive payouts.  I don't feel like that is too much to ask.  I'm really hoping someone here can help me get mining again.

PS - Over the last few weeks of trying to 'get back' my 'aso118' account; I've begun to realize how series internet security is.  So, if anyone would like me to prove my identify; I still have my 'give-a-away' faucet wallet from the yacointalk forums and I would be happy to sign any message.
WindMaster
Sr. Member
****
Offline Offline

Activity: 347


View Profile
September 16, 2015, 12:47:40 AM
 #3086

You know, given that there are currently only a handful of YAC nodes running, it might not be difficult to narrow down the malicious miner by observing which node(s) introduce(s) which blocks to the network and when...
alenevaa
Sr. Member
****
Offline Offline

Activity: 288



View Profile WWW
September 16, 2015, 01:28:41 PM
 #3087


So, I tired solo mining (yet again).  And I've spent the last three hours trying to 'set it up' with no luck (you may remember - I'm not very tech savvy).  My wallet it fully synced (I never close it!) and I'm using Thirtybird's cpu miner along with the following conf.

Code:
rpcuser=*my_user_name_here*
rpcpassword=*my_password_here*
rpcallowip=127.0.0.1
rpcport=3433
port=7688
daemon=1
server=1
gen=1
genproclimit=-1

I've tried several dozen config files from all of the google searches; but this is my 'current' one.  My script for the cpu miner is as follows.

Code:
@echo off

echo Mining script was last updated on 7:38 PM 9/15/2015.

echo.
echo Enter the number of threads to mine with.
set /p threads=

cd "C:\Mining\minerd-yacoin_stratum_x86_2_4_0"
start minerd-x86-corei7.exe -a scrypt-jane -t %threads% -s 2 -o stratum+tcp://127.0.0.1:3433 -u *my_user_name_here* -p *my_password_here*

I've been a fatful YAC miner since day one, and I just want to be able to mine AND receive payouts.  I don't feel like that is too much to ask.  I'm really hoping someone here can help me get mining again.

About payments:
As far as I know (and I'm monitoring this situation) public chain has about 100% orphaned blocks. So no one on public chain has payments.

About config:
1-st question. Do you mine with minerd and yacoind on the same computer?

If answer ‘yes’ - you don’t need the option gen=1 in file yacoin.conf

Gen=1 only affects whether yacoind itself will mine. It does not need to be on in order for an external mining program such as minerd to work. All minerd needs is an RPC connection to yacoind in order to find out what work it needs to do.

If answer ‘no’ - i.e., minerd and yacoind are running on different PCs

You should set rpcallowip with minerd IP and use yacoind IP in url
http://yacoind_ip:3433

2-nd. You shouldn’t use stratum in url because yacoind has no stratum!

Simply use http://127.0.0.1:3433

3-rd. Your wallet should be unlocked

Also please check option -a scrypt-jane
It may be ok for you version of minerd but for my I’m using -a scrypt-chacha
My cmd line:
Code:
minerd-x64-avx.exe -a scrypt-chacha -o http://192.168.1.1:3334 -O alenevaa.CPU1:1

I hope it helps you!  Smiley

Best wishes

██████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
█████████████████████
████████████████████████
████████████████████████
██████████████████████
██████████████████████
███████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
██████████████████████
|
WINGS           
Where DAO Unicorns are born
|
.
1st Bitcoin & Ethereum DAO for DAOs
1st Decentralized Chatbot to Smart Contracts Interaction System

|
.
Wings Bounties Earn Eggs
X-Blockchain DAO

aso118b
Newbie
*
Offline Offline

Activity: 15


View Profile
September 16, 2015, 02:18:44 PM
 #3088

About payments:
As far as I know (and I'm monitoring this situation) public chain has about 100% orphaned blocks. So no one on public chain has payments.

I thought the orphaned issue was 'fixed' and the 'malicious miner' had stopped.  So are you saying that even if I do get solo mining working there is a very good chance that the computing power I dedicated to mining will be on a 'split' blockchain? 


About config:
1-st question. Do you mine with minerd and yacoind on the same computer?

If answer ‘yes’ - you don’t need the option gen=1 in file yacoin.conf

Gen=1 only affects whether yacoind itself will mine. It does not need to be on in order for an external mining program such as minerd to work. All minerd needs is an RPC connection to yacoind in order to find out what work it needs to do.

If answer ‘no’ - i.e., minerd and yacoind are running on different PCs

You should set rpcallowip with minerd IP and use yacoind IP in url
http://yacoind_ip:3433

2-nd. You shouldn’t use stratum in url because yacoind has no stratum!

Simply use http://127.0.0.1:3433

3-rd. Your wallet should be unlocked

Also please check option -a scrypt-jane
It may be ok for you version of minerd but for my I’m using -a scrypt-chacha
My cmd line:
Code:
minerd-x64-avx.exe -a scrypt-chacha -o http://192.168.1.1:3334 -O alenevaa.CPU1:1

I hope it helps you!  Smiley

Best wishes

Ah - I didn't realize that with the stratum.  And that the wallet needed to be unlocked.  I just unlocked it now and its going a bit crazy trying to stake.  I'll try mining again in a few hours when my processor isn't running at 99%.
alenevaa
Sr. Member
****
Offline Offline

Activity: 288



View Profile WWW
September 16, 2015, 02:38:22 PM
 #3089

Ah - I didn't realize that with the stratum.  And that the wallet needed to be unlocked.  I just unlocked it now and its going a bit crazy trying to stake.  I'll try mining again in a few hours when my processor isn't running at 99%.
And remove option gen=1 from yacoin.conf
Because with it your wallet is mining and cpu will always be 99%

██████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
█████████████████████
████████████████████████
████████████████████████
██████████████████████
██████████████████████
███████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
██████████████████████
|
WINGS           
Where DAO Unicorns are born
|
.
1st Bitcoin & Ethereum DAO for DAOs
1st Decentralized Chatbot to Smart Contracts Interaction System

|
.
Wings Bounties Earn Eggs
X-Blockchain DAO

alenevaa
Sr. Member
****
Offline Offline

Activity: 288



View Profile WWW
September 16, 2015, 07:34:10 PM
 #3090

I thought the orphaned issue was 'fixed' and the 'malicious miner' had stopped.  So are you saying that even if I do get solo mining working there is a very good chance that the computing power I dedicated to mining will be on a 'split' blockchain? 

Yep, exactly!

Even all PoS blocks that your wallet has found will be orphaned. You can check it later by yourself.
We are waiting for the fixes that senj has proposed and for consolidating the hashpower.
I have running pool in standby mode with a little hashpower just for monitoring situation. But everybody welcome to mine, of course..

██████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
█████████████████████
████████████████████████
████████████████████████
██████████████████████
██████████████████████
███████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
██████████████████████
|
WINGS           
Where DAO Unicorns are born
|
.
1st Bitcoin & Ethereum DAO for DAOs
1st Decentralized Chatbot to Smart Contracts Interaction System

|
.
Wings Bounties Earn Eggs
X-Blockchain DAO

aso118b
Newbie
*
Offline Offline

Activity: 15


View Profile
September 16, 2015, 10:41:50 PM
 #3091

I thought the orphaned issue was 'fixed' and the 'malicious miner' had stopped.  So are you saying that even if I do get solo mining working there is a very good chance that the computing power I dedicated to mining will be on a 'split' blockchain? 

Yep, exactly!

Even all PoS blocks that your wallet has found will be orphaned. You can check it later by yourself.
We are waiting for the fixes that senj has proposed and for consolidating the hashpower.
I have running pool in standby mode with a little hashpower just for monitoring situation. But everybody welcome to mine, of course..

So we can't mine or mint or send transactions right now....  How long until the 'quick fix' is applied?
alenevaa
Sr. Member
****
Offline Offline

Activity: 288



View Profile WWW
September 17, 2015, 08:03:47 AM
 #3092

So we can't mine or mint or send transactions right now....  How long until the 'quick fix' is applied?

Public transactions are included in chain by [irony]merciful malicious miner[/irony] ('3M').
Of course only the transactions which operate with earlier blocks before splitting the chain.

I hope that 3M will be bored or price will be dumped so low that 3M won't get any sense and he get off.

██████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
█████████████████████
████████████████████████
████████████████████████
██████████████████████
██████████████████████
███████████████████████
████████████████████████
████████████████████████
████████████████████████
███████████████████████
██████████████████████
|
WINGS           
Where DAO Unicorns are born
|
.
1st Bitcoin & Ethereum DAO for DAOs
1st Decentralized Chatbot to Smart Contracts Interaction System

|
.
Wings Bounties Earn Eggs
X-Blockchain DAO

aso118b
Newbie
*
Offline Offline

Activity: 15


View Profile
September 21, 2015, 10:21:38 PM
 #3093

I thought the orphaned issue was 'fixed' and the 'malicious miner' had stopped.  So are you saying that even if I do get solo mining working there is a very good chance that the computing power I dedicated to mining will be on a 'split' blockchain? 

Yep, exactly!

Even all PoS blocks that your wallet has found will be orphaned. You can check it later by yourself.
We are waiting for the fixes that senj has proposed and for consolidating the hashpower.
I have running pool in standby mode with a little hashpower just for monitoring situation. But everybody welcome to mine, of course..

So we can't mine or mint or send transactions right now....  How long until the 'quick fix' is applied?

Is there an ETA or timeline for this to be implemented?  Until YAC can be mined by the community again, and not one miner, the coin is dead... 
Beave162
Hero Member
*****
Offline Offline

Activity: 701



View Profile
September 30, 2015, 08:50:56 AM
 #3094

Is there an ETA or timeline for this to be implemented?  Until YAC can be mined by the community again, and not one miner, the coin is dead... 

It is simply a matter of time before this 'attack' is defeated for the cause of "fairer" distribution in the block rewards.

YACoin has always been going through a process of weeding out the people who are just vested in a coin for short-term profits over long-term purpose. I'd say the people sticking with it at this point are very high-quality in many ways.

This person (or group) is really hurting himself the most if you consider lost opportunity. As the price drops--as it should as long this attack continues--the magnitude of earnings and opportunities for people who are in it for the long-haul will just be that much greater. The 'fixes' will hopefully be released soon, but time is on our side no matter what.

YaCoin: YL5kf54wPPXKsXd5T18xCaNkyUsS1DgY7z 
BitCoin: 14PFbLyUdTyxZg3V8hnvj5VXkx3dhthmDj
old c coder
Sr. Member
****
Offline Offline

Activity: 252



View Profile
October 01, 2015, 03:52:03 AM
 #3095

old c coder, I considered your comments and realized you made very substantial arguments.
Therefore I've made changes:

GetPoWPoSRatio() function now returns double, and there is new GetSpacingThreshold() function that adjusts, rounds and converts that ratio to integer.
Now Proof Of Work target moving average does not get stored in PoS block's nonce attribute. I've added to CBlockIndex class new member nBitsMA for that purpose. Like you said - having it in PoS block's nonce was not needed, and second: I think it is even better, if we can keep PoS nonce at 0 and force PoW blocks have nonce>0. That is how we will be able to easily differentiate blocks in future and derive chaintrust only from headers.

Next I've managed to complete code upgrade. I've split github commits into logical contexts. I suggest you start scrutinizing from oldest one on, because that functionality get's reused in later commits.

Last commit will need to be explained, but in short: it deals with small value ProofOfStake blocks in a way Balthazar mentioned more than a year ago (the need to make attack energy expensive). I had a complex solution for that, but then I came up with a better one: reuse scrypt-jane and transform stake kernel hash operation to use memory(scrypt-jane) for hash, and stakeNfactor used gets calculated from stake kernel value. I also introduced new higher dynamic threshold - you now need more than 20 coins (in one input) to generate stake and that value is incrementally increasing. Again, a lot of explaining needed here, also regarding optimizations...

First, I need proficient eyes to take a look and raise flags on possible obvious errors.
Unfortunately I do not have resources to test this, so this is done kind of Beethoven style (after he went deaf).
But I think we can make it work.

here:
https://github.com/senadj/yacoin/commits/smallpos

Hello Senj,

I have been thinking about the code and wondering if one could "slow down" the PoW "attack" by requiring (or making it more "atractive") to have a PoS block between PoW blocks?

The current miner code, in the daemon & Qt code has this line in the function:
void BitcoinMiner(CWallet *pwallet, bool fProofOfStake)
{
...
if (fProofOfStake && pindexPrev->IsProofOfStake())
        {
            bool
                fFastPOS = GetArg("-fastpos", 0);

            if (!fFastPOS)
                Sleep(500);
            continue;
        }
...
}

Which suggests to me that two (consecutive/contiguous) PoS blocks aren't allowed.  Could we add a similar:
if (!fProofOfStake && !pindexPrev->IsProofOfStake())
        {
            bool
                fFastPOS = GetArg("-fastpos", 0);

            if (!fFastPOS)
                Sleep(500);
            continue;
        }

or some such, forcing a PoS block?  At the moment the average block period goes up sometimes over 5 minutes, I presume because there are few miners mining and the "difficulty" is high?  Is there too much risk that no one online can PoS and so stop the flow of blocks?  I said somewhere that perhaps being able to mine every block instead of every other block as a PoW one may be the "break-even" money point (at ~ 1minute/block average period) that makes this ploy worth doing.  If he/she/they can PoS along with someone else, would the code the rest of the nodes are running fairly allow one or the other PoS block and reject the other, even if the greedy miner adds a PoW block onto the "weaker" PoS block.  

Just musing...  on to the unit tests in a separate message Wink

Ron

BTC: 1DPvP6WoZzaNQ9Nxzd64hjYad1kyQzTTbx YAC: Y3ZggXDvnRJaRwtVGyGJwt6DMLN3EPQpQf 
The day is coming when a single carrot, freshly observed, will set off a revolution.  Paul Cezanne
old c coder
Sr. Member
****
Offline Offline

Activity: 252



View Profile
October 01, 2015, 04:16:05 AM
 #3096

Hello all,

I remember reading that the unit test for YACoin "didn't work", "needed work", etc.  So I said I can do that, since I did it for Bitcoin (0.8.6 MSVC++ and earlier versions).

Yesterday at ~9:30am EDT I finally conquered the gcc unit tests on windows!!  By that I mean being able to compile successfully!  And run!  The MSVC++ versions have been running for some time, but it would be nice to compare to the gcc flavor to verify that the code is doing the same thing with both compilers.  And it is!

I'm seeing a lot of errors in the "base58_keys_valid_parse" of the "base58_tests" test suite.  I went back and looked at the Bitcoin 0.7.2 sources and a sampling of NVC and PPC sources and the test data files are all identical.  The test code too!  Sadly YACoin up to 0.4.4 is the same too! Sad

So the data to test an address that doesn't start with Y sure ain't going to work on code testing for it!

It seems "tautological" to use the Yacoind or qt to create an address, then put it into the test data files and then test the program to see if it agrees that that is an address?  I would think that one would like to create addresses and keys and scripts, etc. to test, with some other tool than the code itself, to actually test the code?

And all the other tests in the "base58_keys_valid_parse" and the "base58_keys_valid_gen" tests.  Anyone have any idea what the intent (there's that word again) of the test code was in this area?  Are the tests using special values to test some aspect of the bitcoin 0.7.2 code?

In any event, here is what the gcc Yacoin unit tests look like:

Running 69 test cases...
Entering test suite "Bitcoin Test Suite"
Entering test suite "wallet_tests"
Entering test case "coin_selection_tests"
Leaving test case "coin_selection_tests"; testing time: 781ms
Leaving test suite "wallet_tests"
Entering test suite "util_tests"
Entering test case "util_criticalsection"
Test case util_criticalsection did not check any assertions
Leaving test case "util_criticalsection"; testing time: 15999mks
Entering test case "util_MedianFilter"
Leaving test case "util_MedianFilter"
Entering test case "util_ParseHex"
Leaving test case "util_ParseHex"
Entering test case "util_HexStr"
Leaving test case "util_HexStr"
Entering test case "util_DateTimeStrFormat"
Leaving test case "util_DateTimeStrFormat"
Entering test case "util_ParseParameters"
Leaving test case "util_ParseParameters"
Entering test case "util_GetArg"
Leaving test case "util_GetArg"
Entering test case "util_WildcardMatch"
Leaving test case "util_WildcardMatch"
Entering test case "util_FormatMoney"
Leaving test case "util_FormatMoney"
Entering test case "util_ParseMoney"
Leaving test case "util_ParseMoney"
Entering test case "util_IsHex"
Leaving test case "util_IsHex"
Leaving test suite "util_tests"
Entering test suite "uint256_tests"
Entering test case "uint256_equality"
Leaving test case "uint256_equality"
Leaving test suite "uint256_tests"
Entering test suite "uint160_tests"
Entering test case "uint160_equality"
Leaving test case "uint160_equality"
Leaving test suite "uint160_tests"
Entering test suite "transaction_tests"
Entering test case "tx_valid"
unknown location(0): fatal error in "tx_valid": std::exception: CDataStream::read() : end of data
Leaving test case "tx_valid"; testing time: 47ms
Entering test case "tx_invalid"
unknown location(0): fatal error in "tx_invalid": std::exception: CDataStream::read() : end of data
Leaving test case "tx_invalid"
Entering test case "basic_transaction_tests"
unknown location(0): fatal error in "basic_transaction_tests": std::exception: CDataStream::read() : end of data
Leaving test case "basic_transaction_tests"
Entering test case "test_Get"
Leaving test case "test_Get"; testing time: 47ms
Entering test case "test_GetThrow"
Leaving test case "test_GetThrow"
Leaving test suite "transaction_tests"
Entering test suite "sigopcount_tests"
Entering test case "GetSigOpCount"
Leaving test case "GetSigOpCount"; testing time: 15ms
Leaving test suite "sigopcount_tests"
Entering test suite "script_tests"
Entering test case "script_valid"
Leaving test case "script_valid"; testing time: 47ms
Entering test case "script_invalid"
Leaving test case "script_invalid"; testing time: 15999mks
Entering test case "script_PushData"
Leaving test case "script_PushData"
Entering test case "script_CHECKMULTISIG12"
Leaving test case "script_CHECKMULTISIG12"; testing time: 31ms
Entering test case "script_CHECKMULTISIG23"
Leaving test case "script_CHECKMULTISIG23"; testing time: 94ms
Entering test case "script_combineSigs"
Leaving test case "script_combineSigs"; testing time: 47ms
Leaving test suite "script_tests"
Entering test suite "script_P2SH_tests"
Entering test case "sign"
Leaving test case "sign"; testing time: 78ms
Entering test case "norecurse"
Leaving test case "norecurse"
Entering test case "set"
Leaving test case "set"; testing time: 47ms
Entering test case "is"
Leaving test case "is"
Entering test case "switchover"
Leaving test case "switchover"
Entering test case "AreInputsStandard"
Leaving test case "AreInputsStandard"; testing time: 31ms
Leaving test suite "script_P2SH_tests"
Entering test suite "rpc_tests"
Entering test case "rpc_addmultisig"
Leaving test case "rpc_addmultisig"; testing time: 468ms
Leaving test suite "rpc_tests"
Entering test suite "netbase_tests"
Entering test case "netbase_networks"
test/netbase_tests.cpp(25): error in "netbase_networks": check CNetAddr("2001::8888").GetNetwork() == NET_IPV6 failed
test/netbase_tests.cpp(26): error in "netbase_networks": check CNetAddr("FD87:D87E:EB43:edb1:8e4:3588:e546:35ca").GetNetwork() == NET_TOR failed
Leaving test case "netbase_networks"
Entering test case "netbase_properties"
test/netbase_tests.cpp(33): error in "netbase_properties": check CNetAddr("::FFFF:192.168.0.4").IsIPv4() failed
test/netbase_tests.cpp(38): error in "netbase_properties": check CNetAddr("2001:0DB8::").IsRFC3849() failed
test/netbase_tests.cpp(40): error in "netbase_properties": check CNetAddr("2002::1").IsRFC3964() failed
test/netbase_tests.cpp(41): error in "netbase_properties": check CNetAddr("FC00::").IsRFC4193() failed
test/netbase_tests.cpp(42): error in "netbase_properties": check CNetAddr("2001::2").IsRFC4380() failed
test/netbase_tests.cpp(43): error in "netbase_properties": check CNetAddr("2001:10::").IsRFC4843() failed
test/netbase_tests.cpp(44): error in "netbase_properties": check CNetAddr("FE80::").IsRFC4862() failed
test/netbase_tests.cpp(45): error in "netbase_properties": check CNetAddr("64:FF9B::").IsRFC6052() failed
test/netbase_tests.cpp(46): error in "netbase_properties": check CNetAddr("FD87:D87E:EB43:edb1:8e4:3588:e546:35ca").IsTor() failed
test/netbase_tests.cpp(48): error in "netbase_properties": check CNetAddr("::1").IsLocal() failed
test/netbase_tests.cpp(50): error in "netbase_properties": check CNetAddr("2001::1").IsRoutable() failed
Leaving test case "netbase_properties"
Entering test case "netbase_splithost"
Leaving test case "netbase_splithost"
Entering test case "netbase_lookupnumeric"
test/netbase_tests.cpp(93): error in "netbase_lookupnumeric": check TestParse("::ffff:127.0.0.1", "127.0.0.1:65535") failed
test/netbase_tests.cpp(94): error in "netbase_lookupnumeric": check TestParse("::", "[::]:65535") failed
test/netbase_tests.cpp(95): error in "netbase_lookupnumeric": check TestParse("[::]:8333", "[::]:8333") failed
Leaving test case "netbase_lookupnumeric"
Entering test case "onioncat_test"
test/netbase_tests.cpp(105): error in "onioncat_test": check addr1 == addr2 failed
Leaving test case "onioncat_test"
Leaving test suite "netbase_tests"
Entering test suite "multisig_tests"
Entering test case "multisig_verify"
Leaving test case "multisig_verify"; testing time: 250ms
Entering test case "multisig_IsStandard"
Leaving test case "multisig_IsStandard"
Entering test case "multisig_Solver1"
Leaving test case "multisig_Solver1"; testing time: 15999mks
Entering test case "multisig_Sign"
Leaving test case "multisig_Sign"; testing time: 31ms
Leaving test suite "multisig_tests"
Entering test suite "mruset_tests"
Entering test case "mruset_like_set"
Leaving test case "mruset_like_set"; testing time: 31999mks
Entering test case "mruset_limited_size"
Leaving test case "mruset_limited_size"; testing time: 15ms
Entering test case "mruset_window"
Leaving test case "mruset_window"; testing time: 47ms
Leaving test suite "mruset_tests"
Entering test suite "miner_tests"
Entering test case "sha256transform_equality"
2df5e1c65ef9f8cde240d23cae2ec036d31a15ec64bc68f64be242b1da6631f3
Leaving test case "sha256transform_equality"
Leaving test suite "miner_tests"
Entering test suite "key_tests"
Entering test case "key_test1"
test/key_tests.cpp(91): error in "key_test1": check bsecret1.SetString (strSecret1) failed
test/key_tests.cpp(92): error in "key_test1": check bsecret2.SetString (strSecret2) failed
test/key_tests.cpp(93): error in "key_test1": check bsecret1C.SetString(strSecret1C) failed
test/key_tests.cpp(94): error in "key_test1": check bsecret2C.SetString(strSecret2C) failed
test/key_tests.cpp(116): error in "key_test1": check addr1.Get() == CTxDestination(key1.GetPubKey().GetID()) failed
test/key_tests.cpp(117): error in "key_test1": check addr2.Get() == CTxDestination(key2.GetPubKey().GetID()) failed
test/key_tests.cpp(118): error in "key_test1": check addr1C.Get() == CTxDestination(key1C.GetPubKey().GetID()) failed
test/key_tests.cpp(119): error in "key_test1": check addr2C.Get() == CTxDestination(key2C.GetPubKey().GetID()) failed
Leaving test case "key_test1"; testing time: 1438ms
Leaving test suite "key_tests"
Entering test suite "getarg_tests"
Entering test case "boolarg"
Leaving test case "boolarg"
Entering test case "stringarg"
Leaving test case "stringarg"
Entering test case "intarg"
Leaving test case "intarg"
Entering test case "doubledash"
Leaving test case "doubledash"
Entering test case "boolargno"
Leaving test case "boolargno"
Leaving test suite "getarg_tests"
Entering test suite "DoS_tests"
Entering test case "DoS_banning"
Leaving test case "DoS_banning"
Entering test case "DoS_banscore"
Leaving test case "DoS_banscore"
Entering test case "DoS_bantime"
Leaving test case "DoS_bantime"
Entering test case "DoS_checknbits"
Leaving test case "DoS_checknbits"
Entering test case "DoS_mapOrphans"
Leaving test case "DoS_mapOrphans"; testing time: 593ms
Entering test case "DoS_checkSig"
Leaving test case "DoS_checkSig"; testing time: 1250ms
Leaving test suite "DoS_tests"
Entering test suite "Checkpoints_tests"
Entering test case "sanity"
Leaving test case "sanity"
Leaving test suite "Checkpoints_tests"
Entering test suite "bignum_tests"
Entering test case "bignum_setint64"
Leaving test case "bignum_setint64"
Leaving test suite "bignum_tests"
Entering test suite "base64_tests"
Entering test case "base64_testvectors"
Leaving test case "base64_testvectors"
Leaving test suite "base64_tests"
Entering test suite "base58_tests"
Entering test case "base58_EncodeBase58"
Leaving test case "base58_EncodeBase58"
Entering test case "base58_DecodeBase58"
Leaving test case "base58_DecodeBase58"
Entering test case "base58_keys_valid_parse"
test/base58_tests.cpp(178): error in "base58_keys_valid_parse": !IsValid:["1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i","65a16059864a2fdbc7c99a4723a8395bc6f188eb",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(181): error in "base58_keys_valid_parse": addrType mismatch["1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i","65a16059864a2fdbc7c99a4723a8395bc6f188eb",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(178): error in "base58_keys_valid_parse": !IsValid:["3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou","74f209f6ea907e2ea48f74fae05782ae8a665257",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(179): error in "base58_keys_valid_parse": isScript mismatch["3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou","74f209f6ea907e2ea48f74fae05782ae8a665257",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(181): error in "base58_keys_valid_parse": addrType mismatch["3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou","74f209f6ea907e2ea48f74fae05782ae8a665257",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(162): error in "base58_keys_valid_parse": !SetString:["5Kd3NBUAdUnhyzenEwVLy9pBKxSwXvE9FMPyR4UKZvpe6E3AgLr","eddbdc1168f1daeadbd3e44c1e3f8f5a284c2029f78ad26af98583a499de5b19",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(163): error in "base58_keys_valid_parse": !IsValid:["5Kd3NBUAdUnhyzenEwVLy9pBKxSwXvE9FMPyR4UKZvpe6E3AgLr","eddbdc1168f1daeadbd3e44c1e3f8f5a284c2029f78ad26af98583a499de5b19",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(162): error in "base58_keys_valid_parse": !SetString:["Kz6UJmQACJmLtaQj5A3JAge4kVTNQ8gbvXuwbmCj7bsaabudb3RD","55c9bccb9ed68446d1b75273bbce89d7fe013a8acd1625514420fb2aca1a21c4",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(163): error in "base58_keys_valid_parse": !IsValid:["Kz6UJmQACJmLtaQj5A3JAge4kVTNQ8gbvXuwbmCj7bsaabudb3RD","55c9bccb9ed68446d1b75273bbce89d7fe013a8acd1625514420fb2aca1a21c4",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(178): error in "base58_keys_valid_parse": !IsValid:["1Ax4gZtb7gAit2TivwejZHYtNNLT18PUXJ","6d23156cbbdcc82a5a47eee4c2c7c583c18b6bf4",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(181): error in "base58_keys_valid_parse": addrType mismatch["1Ax4gZtb7gAit2TivwejZHYtNNLT18PUXJ","6d23156cbbdcc82a5a47eee4c2c7c583c18b6bf4",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(178): error in "base58_keys_valid_parse": !IsValid:["3QjYXhTkvuj8qPaXHTTWb5wjXhdsLAAWVy","fcc5460dd6e2487c7d75b1963625da0e8f4c5975",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(179): error in "base58_keys_valid_parse": isScript mismatch["3QjYXhTkvuj8qPaXHTTWb5wjXhdsLAAWVy","fcc5460dd6e2487c7d75b1963625da0e8f4c5975",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(181): error in "base58_keys_valid_parse": addrType mismatch["3QjYXhTkvuj8qPaXHTTWb5wjXhdsLAAWVy","fcc5460dd6e2487c7d75b1963625da0e8f4c5975",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(162): error in "base58_keys_valid_parse": !SetString:["5K494XZwps2bGyeL71pWid4noiSNA2cfCibrvRWqcHSptoFn7rc","a326b95ebae30164217d7a7f57d72ab2b54e3be64928a19da0210b9568d4015e",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(163): error in "base58_keys_valid_parse": !IsValid:["5K494XZwps2bGyeL71pWid4noiSNA2cfCibrvRWqcHSptoFn7rc","a326b95ebae30164217d7a7f57d72ab2b54e3be64928a19da0210b9568d4015e",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(162): error in "base58_keys_valid_parse": !SetString:["L1RrrnXkcKut5DEMwtDthjwRcTTwED36thyL1DebVrKuwvohjMNi","7d998b45c219a1e38e99e7cbd312ef67f77a455a9b50c730c27f02c6f730dfb4",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(163): error in "base58_keys_valid_parse": !IsValid:["L1RrrnXkcKut5DEMwtDthjwRcTTwED36thyL1DebVrKuwvohjMNi","7d998b45c219a1e38e99e7cbd312ef67f77a455a9b50c730c27f02c6f730dfb4",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(178): error in "base58_keys_valid_parse": !IsValid:["1C5bSj1iEGUgSTbziymG7Cn18ENQuT36vv","7987ccaa53d02c8873487ef919677cd3db7a6912",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(181): error in "base58_keys_valid_parse": addrType mismatch["1C5bSj1iEGUgSTbziymG7Cn18ENQuT36vv","7987ccaa53d02c8873487ef919677cd3db7a6912",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(178): error in "base58_keys_valid_parse": !IsValid:["3AnNxabYGoTxYiTEZwFEnerUoeFXK2Zoks","63bcc565f9e68ee0189dd5cc67f1b0e5f02f45cb",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(179): error in "base58_keys_valid_parse": isScript mismatch["3AnNxabYGoTxYiTEZwFEnerUoeFXK2Zoks","63bcc565f9e68ee0189dd5cc67f1b0e5f02f45cb",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(181): error in "base58_keys_valid_parse": addrType mismatch["3AnNxabYGoTxYiTEZwFEnerUoeFXK2Zoks","63bcc565f9e68ee0189dd5cc67f1b0e5f02f45cb",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(162): error in "base58_keys_valid_parse": !SetString:["5KaBW9vNtWNhc3ZEDyNCiXLPdVPHCikRxSBWwV9NrpLLa4LsXi9","e75d936d56377f432f404aabb406601f892fd49da90eb6ac558a733c93b47252",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(163): error in "base58_keys_valid_parse": !IsValid:["5KaBW9vNtWNhc3ZEDyNCiXLPdVPHCikRxSBWwV9NrpLLa4LsXi9","e75d936d56377f432f404aabb406601f892fd49da90eb6ac558a733c93b47252",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(162): error in "base58_keys_valid_parse": !SetString:["L1axzbSyynNYA8mCAhzxkipKkfHtAXYF4YQnhSKcLV8YXA874fgT","8248bd0375f2f75d7e274ae544fb920f51784480866b102384190b1addfbaa5c",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(163): error in "base58_keys_valid_parse": !IsValid:["L1axzbSyynNYA8mCAhzxkipKkfHtAXYF4YQnhSKcLV8YXA874fgT","8248bd0375f2f75d7e274ae544fb920f51784480866b102384190b1addfbaa5c",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(178): error in "base58_keys_valid_parse": !IsValid:["1Gqk4Tv79P91Cc1STQtU3s1W6277M2CVWu","adc1cc2081a27206fae25792f28bbc55b831549d",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(181): error in "base58_keys_valid_parse": addrType mismatch["1Gqk4Tv79P91Cc1STQtU3s1W6277M2CVWu","adc1cc2081a27206fae25792f28bbc55b831549d",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(178): error in "base58_keys_valid_parse": !IsValid:["33vt8ViH5jsr115AGkW6cEmEz9MpvJSwDk","188f91a931947eddd7432d6e614387e32b244709",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(179): error in "base58_keys_valid_parse": isScript mismatch["33vt8ViH5jsr115AGkW6cEmEz9MpvJSwDk","188f91a931947eddd7432d6e614387e32b244709",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(181): error in "base58_keys_valid_parse": addrType mismatch["33vt8ViH5jsr115AGkW6cEmEz9MpvJSwDk","188f91a931947eddd7432d6e614387e32b244709",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(162): error in "base58_keys_valid_parse": !SetString:["5HtH6GdcwCJA4ggWEL1B3jzBBUB8HPiBi9SBc5h9i4Wk4PSeApR","091035445ef105fa1bb125eccfb1882f3fe69592265956ade751fd095033d8d0",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(163): error in "base58_keys_valid_parse": !IsValid:["5HtH6GdcwCJA4ggWEL1B3jzBBUB8HPiBi9SBc5h9i4Wk4PSeApR","091035445ef105fa1bb125eccfb1882f3fe69592265956ade751fd095033d8d0",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(162): error in "base58_keys_valid_parse": !SetString:["L2xSYmMeVo3Zek3ZTsv9xUrXVAmrWxJ8Ua4cw8pkfbQhcEFhkXT8","ab2b4bcdfc91d34dee0ae2a8c6b6668dadaeb3a88b9859743156f462325187af",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(163): error in "base58_keys_valid_parse": !IsValid:["L2xSYmMeVo3Zek3ZTsv9xUrXVAmrWxJ8Ua4cw8pkfbQhcEFhkXT8","ab2b4bcdfc91d34dee0ae2a8c6b6668dadaeb3a88b9859743156f462325187af",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(178): error in "base58_keys_valid_parse": !IsValid:["1JwMWBVLtiqtscbaRHai4pqHokhFCbtoB4","c4c1b72491ede1eedaca00618407ee0b772cad0d",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(181): error in "base58_keys_valid_parse": addrType mismatch["1JwMWBVLtiqtscbaRHai4pqHokhFCbtoB4","c4c1b72491ede1eedaca00618407ee0b772cad0d",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(178): error in "base58_keys_valid_parse": !IsValid:["3QCzvfL4ZRvmJFiWWBVwxfdaNBT8EtxB5y","f6fe69bcb548a829cce4c57bf6fff8af3a5981f9",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(179): error in "base58_keys_valid_parse": isScript mismatch["3QCzvfL4ZRvmJFiWWBVwxfdaNBT8EtxB5y","f6fe69bcb548a829cce4c57bf6fff8af3a5981f9",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(181): error in "base58_keys_valid_parse": addrType mismatch["3QCzvfL4ZRvmJFiWWBVwxfdaNBT8EtxB5y","f6fe69bcb548a829cce4c57bf6fff8af3a5981f9",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(162): error in "base58_keys_valid_parse": !SetString:["5KQmDryMNDcisTzRp3zEq9e4awRmJrEVU1j5vFRTKpRNYPqYrMg","d1fab7ab7385ad26872237f1eb9789aa25cc986bacc695e07ac571d6cdac8bc0",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(163): error in "base58_keys_valid_parse": !IsValid:["5KQmDryMNDcisTzRp3zEq9e4awRmJrEVU1j5vFRTKpRNYPqYrMg","d1fab7ab7385ad26872237f1eb9789aa25cc986bacc695e07ac571d6cdac8bc0",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(162): error in "base58_keys_valid_parse": !SetString:["L39Fy7AC2Hhj95gh3Yb2AU5YHh1mQSAHgpNixvm27poizcJyLtUi","b0bbede33ef254e8376aceb1510253fc3550efd0fcf84dcd0c9998b288f166b3",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(163): error in "base58_keys_valid_parse": !IsValid:["L39Fy7AC2Hhj95gh3Yb2AU5YHh1mQSAHgpNixvm27poizcJyLtUi","b0bbede33ef254e8376aceb1510253fc3550efd0fcf84dcd0c9998b288f166b3",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(178): error in "base58_keys_valid_parse": !IsValid:["19dcawoKcZdQz365WpXWMhX6QCUpR9SY4r","5eadaf9bb7121f0f192561a5a62f5e5f54210292",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(181): error in "base58_keys_valid_parse": addrType mismatch["19dcawoKcZdQz365WpXWMhX6QCUpR9SY4r","5eadaf9bb7121f0f192561a5a62f5e5f54210292",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(178): error in "base58_keys_valid_parse": !IsValid:["37Sp6Rv3y4kVd1nQ1JV5pfqXccHNyZm1x3","3f210e7277c899c3a155cc1c90f4106cbddeec6e",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(179): error in "base58_keys_valid_parse": isScript mismatch["37Sp6Rv3y4kVd1nQ1JV5pfqXccHNyZm1x3","3f210e7277c899c3a155cc1c90f4106cbddeec6e",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(181): error in "base58_keys_valid_parse": addrType mismatch["37Sp6Rv3y4kVd1nQ1JV5pfqXccHNyZm1x3","3f210e7277c899c3a155cc1c90f4106cbddeec6e",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(162): error in "base58_keys_valid_parse": !SetString:["5KL6zEaMtPRXZKo1bbMq7JDjjo1bJuQcsgL33je3oY8uSJCR5b4","c7666842503db6dc6ea061f092cfb9c388448629a6fe868d068c42a488b478ae",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(163): error in "base58_keys_valid_parse": !IsValid:["5KL6zEaMtPRXZKo1bbMq7JDjjo1bJuQcsgL33je3oY8uSJCR5b4","c7666842503db6dc6ea061f092cfb9c388448629a6fe868d068c42a488b478ae",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(162): error in "base58_keys_valid_parse": !SetString:["KwV9KAfwbwt51veZWNscRTeZs9CKpojyu1MsPnaKTF5kz69H1UN2","07f0803fc5399e773555ab1e8939907e9badacc17ca129e67a2f5f2ff84351dd",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(163): error in "base58_keys_valid_parse": !IsValid:["KwV9KAfwbwt51veZWNscRTeZs9CKpojyu1MsPnaKTF5kz69H1UN2","07f0803fc5399e773555ab1e8939907e9badacc17ca129e67a2f5f2ff84351dd",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(178): error in "base58_keys_valid_parse": !IsValid:["13p1ijLwsnrcuyqcTvJXkq2ASdXqcnEBLE","1ed467017f043e91ed4c44b4e8dd674db211c4e6",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(181): error in "base58_keys_valid_parse": addrType mismatch["13p1ijLwsnrcuyqcTvJXkq2ASdXqcnEBLE","1ed467017f043e91ed4c44b4e8dd674db211c4e6",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(178): error in "base58_keys_valid_parse": !IsValid:["3ALJH9Y951VCGcVZYAdpA3KchoP9McEj1G","5ece0cadddc415b1980f001785947120acdb36fc",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(179): error in "base58_keys_valid_parse": isScript mismatch["3ALJH9Y951VCGcVZYAdpA3KchoP9McEj1G","5ece0cadddc415b1980f001785947120acdb36fc",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(181): error in "base58_keys_valid_parse": addrType mismatch["3ALJH9Y951VCGcVZYAdpA3KchoP9McEj1G","5ece0cadddc415b1980f001785947120acdb36fc",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
Leaving test case "base58_keys_valid_parse"; testing time: 15999mks
Entering test case "base58_keys_valid_gen"
test/base58_tests.cpp(245): error in "base58_keys_valid_gen": mismatch: ["Y91bKDTmGfYWT9uLifCyXA5TgpaAMq6cT5","XQCQa4ZnxVdDwF6fDgaiPuNCwyXWcy3PyewnPhNe5VZmLRZgLU4m",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(245): error in "base58_keys_valid_gen": mismatch: ["1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i","65a16059864a2fdbc7c99a4723a8395bc6f188eb",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(245): error in "base58_keys_valid_gen": mismatch: ["3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou","74f209f6ea907e2ea48f74fae05782ae8a665257",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(220): error in "base58_keys_valid_gen": result mismatch: ["5Kd3NBUAdUnhyzenEwVLy9pBKxSwXvE9FMPyR4UKZvpe6E3AgLr","eddbdc1168f1daeadbd3e44c1e3f8f5a284c2029f78ad26af98583a499de5b19",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(220): error in "base58_keys_valid_gen": result mismatch: ["Kz6UJmQACJmLtaQj5A3JAge4kVTNQ8gbvXuwbmCj7bsaabudb3RD","55c9bccb9ed68446d1b75273bbce89d7fe013a8acd1625514420fb2aca1a21c4",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(245): error in "base58_keys_valid_gen": mismatch: ["1Ax4gZtb7gAit2TivwejZHYtNNLT18PUXJ","6d23156cbbdcc82a5a47eee4c2c7c583c18b6bf4",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(245): error in "base58_keys_valid_gen": mismatch: ["3QjYXhTkvuj8qPaXHTTWb5wjXhdsLAAWVy","fcc5460dd6e2487c7d75b1963625da0e8f4c5975",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(220): error in "base58_keys_valid_gen": result mismatch: ["5K494XZwps2bGyeL71pWid4noiSNA2cfCibrvRWqcHSptoFn7rc","a326b95ebae30164217d7a7f57d72ab2b54e3be64928a19da0210b9568d4015e",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(220): error in "base58_keys_valid_gen": result mismatch: ["L1RrrnXkcKut5DEMwtDthjwRcTTwED36thyL1DebVrKuwvohjMNi","7d998b45c219a1e38e99e7cbd312ef67f77a455a9b50c730c27f02c6f730dfb4",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(245): error in "base58_keys_valid_gen": mismatch: ["1C5bSj1iEGUgSTbziymG7Cn18ENQuT36vv","7987ccaa53d02c8873487ef919677cd3db7a6912",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(245): error in "base58_keys_valid_gen": mismatch: ["3AnNxabYGoTxYiTEZwFEnerUoeFXK2Zoks","63bcc565f9e68ee0189dd5cc67f1b0e5f02f45cb",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(220): error in "base58_keys_valid_gen": result mismatch: ["5KaBW9vNtWNhc3ZEDyNCiXLPdVPHCikRxSBWwV9NrpLLa4LsXi9","e75d936d56377f432f404aabb406601f892fd49da90eb6ac558a733c93b47252",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(220): error in "base58_keys_valid_gen": result mismatch: ["L1axzbSyynNYA8mCAhzxkipKkfHtAXYF4YQnhSKcLV8YXA874fgT","8248bd0375f2f75d7e274ae544fb920f51784480866b102384190b1addfbaa5c",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(245): error in "base58_keys_valid_gen": mismatch: ["1Gqk4Tv79P91Cc1STQtU3s1W6277M2CVWu","adc1cc2081a27206fae25792f28bbc55b831549d",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(245): error in "base58_keys_valid_gen": mismatch: ["33vt8ViH5jsr115AGkW6cEmEz9MpvJSwDk","188f91a931947eddd7432d6e614387e32b244709",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(220): error in "base58_keys_valid_gen": result mismatch: ["5HtH6GdcwCJA4ggWEL1B3jzBBUB8HPiBi9SBc5h9i4Wk4PSeApR","091035445ef105fa1bb125eccfb1882f3fe69592265956ade751fd095033d8d0",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(220): error in "base58_keys_valid_gen": result mismatch: ["L2xSYmMeVo3Zek3ZTsv9xUrXVAmrWxJ8Ua4cw8pkfbQhcEFhkXT8","ab2b4bcdfc91d34dee0ae2a8c6b6668dadaeb3a88b9859743156f462325187af",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(245): error in "base58_keys_valid_gen": mismatch: ["1JwMWBVLtiqtscbaRHai4pqHokhFCbtoB4","c4c1b72491ede1eedaca00618407ee0b772cad0d",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(245): error in "base58_keys_valid_gen": mismatch: ["3QCzvfL4ZRvmJFiWWBVwxfdaNBT8EtxB5y","f6fe69bcb548a829cce4c57bf6fff8af3a5981f9",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(220): error in "base58_keys_valid_gen": result mismatch: ["5KQmDryMNDcisTzRp3zEq9e4awRmJrEVU1j5vFRTKpRNYPqYrMg","d1fab7ab7385ad26872237f1eb9789aa25cc986bacc695e07ac571d6cdac8bc0",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(220): error in "base58_keys_valid_gen": result mismatch: ["L39Fy7AC2Hhj95gh3Yb2AU5YHh1mQSAHgpNixvm27poizcJyLtUi","b0bbede33ef254e8376aceb1510253fc3550efd0fcf84dcd0c9998b288f166b3",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(245): error in "base58_keys_valid_gen": mismatch: ["19dcawoKcZdQz365WpXWMhX6QCUpR9SY4r","5eadaf9bb7121f0f192561a5a62f5e5f54210292",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(245): error in "base58_keys_valid_gen": mismatch: ["37Sp6Rv3y4kVd1nQ1JV5pfqXccHNyZm1x3","3f210e7277c899c3a155cc1c90f4106cbddeec6e",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(220): error in "base58_keys_valid_gen": result mismatch: ["5KL6zEaMtPRXZKo1bbMq7JDjjo1bJuQcsgL33je3oY8uSJCR5b4","c7666842503db6dc6ea061f092cfb9c388448629a6fe868d068c42a488b478ae",{"isCompressed":false,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(220): error in "base58_keys_valid_gen": result mismatch: ["KwV9KAfwbwt51veZWNscRTeZs9CKpojyu1MsPnaKTF5kz69H1UN2","07f0803fc5399e773555ab1e8939907e9badacc17ca129e67a2f5f2ff84351dd",{"isCompressed":true,"isPrivkey":true,"isTestnet":false}]
test/base58_tests.cpp(245): error in "base58_keys_valid_gen": mismatch: ["13p1ijLwsnrcuyqcTvJXkq2ASdXqcnEBLE","1ed467017f043e91ed4c44b4e8dd674db211c4e6",{"addrType":"pubkey","isPrivkey":false,"isTestnet":false}]
test/base58_tests.cpp(245): error in "base58_keys_valid_gen": mismatch: ["3ALJH9Y951VCGcVZYAdpA3KchoP9McEj1G","5ece0cadddc415b1980f001785947120acdb36fc",{"addrType":"script","isPrivkey":false,"isTestnet":false}]
Leaving test case "base58_keys_valid_gen"
Entering test case "base58_keys_invalid"
Leaving test case "base58_keys_invalid"; testing time: 15ms
Leaving test suite "base58_tests"
Entering test suite "base32_tests"
Entering test case "base32_testvectors"
Leaving test case "base32_testvectors"
Leaving test suite "base32_tests"
Entering test suite "allocator_tests"
Entering test case "test_LockedPageManagerBase"
Leaving test case "test_LockedPageManagerBase"
Leaving test suite "allocator_tests"
Entering test suite "accounting_tests"
Entering test case "acc_orderupgrade"
Leaving test case "acc_orderupgrade"; testing time: 1188ms
Leaving test suite "accounting_tests"
Leaving test suite "Bitcoin Test Suite"


If anyone would like to see the MSVC++ versions I could post them too, but they are similar.  The gcc is of interest to me since I can't seem to get any response on https://bitcointalk.org/index.php?topic=149479.msg12510445#msg12510445 asking how to do it, so I posted the bitcoin unit test there Grin

Can anyone tell me how to get makefile.mingw in the src directory to actually create a test_*coind.exe?

I did it, but as I said it is a bit of a hack, but it works!

AFAIK, YACoin is the first and only PoS coin that has a running (gcc on windows) unit test Cheesy

Ron


BTC: 1DPvP6WoZzaNQ9Nxzd64hjYad1kyQzTTbx YAC: Y3ZggXDvnRJaRwtVGyGJwt6DMLN3EPQpQf 
The day is coming when a single carrot, freshly observed, will set off a revolution.  Paul Cezanne
senj
Member
**
Offline Offline

Activity: 118


View Profile
October 01, 2015, 09:51:54 PM
 #3097


Hello Senj,

I have been thinking about the code and wondering if one could "slow down" the PoW "attack" by requiring (or making it more "atractive") to have a PoS block between PoW blocks?

The current miner code, in the daemon & Qt code has this line in the function:
void BitcoinMiner(CWallet *pwallet, bool fProofOfStake)
...

Changing how particular peer mines blocks does not change much - bad miners can edit code, build their own release and produce blocks as they please.
True fix has to be implemented in rules peers use for filtering and accepting those blocks.

My commits do that in two ways (will be three eventually):


  • by sharply raising expected difficulty after consecutive PoW block count exceeds ( I refer to this event as overstep ) adjusted PoW/PoS ratio. Here.
  • by giving PoW blocks after PoS block higher trust value - higher than currently here (not implemented yet, but it should be only a small change)
  • by cutting each overstepped block's trust value in half. Here.


That means branch with less PoS blocks not only scores less chaintrust, but it will be also harder to mine.

YAC: YGZRDNuey8MnN6GHVR1x7D3UY5TjDz2HCL
old c coder
Sr. Member
****
Offline Offline

Activity: 252



View Profile
October 02, 2015, 04:55:13 AM
 #3098


Hello Senj,

I have been thinking about the code and wondering if one could "slow down" the PoW "attack" by requiring (or making it more "atractive") to have a PoS block between PoW blocks?

The current miner code, in the daemon & Qt code has this line in the function:
void BitcoinMiner(CWallet *pwallet, bool fProofOfStake)
...

Changing how particular peer mines blocks does not change much - bad miners can edit code, build their own release and produce blocks as they please.
Agreed.  But what if we added a rule in accept block or add block or whatever it is called that didn't allow consecutive PoW blocks?  Is there code in those areas to prevent consecutive PoS blocks, or is it only in the mining code?
Quote

True fix has to be implemented in rules peers use for filtering and accepting those blocks.

My commits do that in two ways (will be three eventually):


  • by sharply raising expected difficulty after consecutive PoW block count exceeds ( I refer to this event as overstep ) adjusted PoW/PoS ratio. Here.
  • by giving PoW blocks after PoS block higher trust value - higher than currently here (not implemented yet, but it should be only a small change)
  • by cutting each overstepped block's trust value in half. Here.


That means branch with less PoS blocks not only scores less chaintrust, but it will be also harder to mine.
These changes, I presume, have to be run by all the peers(full nodes) to "reject" submitted blocks that don't "measure up"?

Ron

BTC: 1DPvP6WoZzaNQ9Nxzd64hjYad1kyQzTTbx YAC: Y3ZggXDvnRJaRwtVGyGJwt6DMLN3EPQpQf 
The day is coming when a single carrot, freshly observed, will set off a revolution.  Paul Cezanne
senj
Member
**
Offline Offline

Activity: 118


View Profile
October 03, 2015, 02:25:17 PM
 #3099

...
Changing how particular peer mines blocks does not change much - bad miners can edit code, build their own release and produce blocks as they please.
Agreed.  But what if we added a rule in accept block or add block or whatever it is called that didn't allow consecutive PoW blocks?  Is there code in those areas to prevent consecutive PoS blocks, or is it only in the mining code?

Yacoin is based on Novacoin and that means fast proof-of-stake algorithm - the goal was to eventually accomodate as many PoS blocks as possible kept one minute apart on average. But also to keep PoW blocks at 10 minute spacing. That would one day accomplish ultimate decentralization with proof-of-work "checkpointing" every 10 minutes.
If I am not mistaken, here is how pocopoco's source basically controls it and that didn't change from launch.

Fixes I made also strive towards that goal.

Last time I checked there were near 11x more PoW blocks than PoS blocks. Making PoW-PoS-PoW-PoS order mandatory would probably cause long delays while waiting for PoS block.
There could be other problems too, depending on addressing issues with small PoS blocks.


These changes, I presume, have to be run by all the peers(full nodes) to "reject" submitted blocks that don't "measure up"?

Yes, hard fork is needed. I am certain we can't fix all problems without it.

YAC: YGZRDNuey8MnN6GHVR1x7D3UY5TjDz2HCL
Beave162
Hero Member
*****
Offline Offline

Activity: 701



View Profile
October 04, 2015, 06:58:38 AM
 #3100

To the people who are buying YAC right now, you are just feeding the beast... We need mining power!

YaCoin: YL5kf54wPPXKsXd5T18xCaNkyUsS1DgY7z 
BitCoin: 14PFbLyUdTyxZg3V8hnvj5VXkx3dhthmDj
Pages: « 1 ... 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 [155] 156 157 158 159 160 161 162 163 164 165 166 167 168 169 »
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!