public function hashcashMint($bits = null) { $stamp = null; if ($bits === null) { $bits = static::HASHCASH_BITS_MIN; } if ($this->getLocalNode()) { $hashcash = new Hashcash($bits, $this->getLocalNode()->getIdHexStr()); $hashcash->setDate(date(Hashcash::DATE_FORMAT12)); try { $stamp = $hashcash->mint(); } catch (Exception $e) { $this->log('error', $e->getMessage()); } // @codeCoverageIgnoreEnd } return $stamp; }
public function testSave3() { #fwrite(STDOUT, __METHOD__.''."\n"); $db = new HashcashDb('test_data/test_hashcashs3.yml'); $ts = time(); $hashcash = new Hashcash(); $hashcash->setVersion(1); $hashcash->setBits(5); $hashcash->setResource('res1'); $hashcash->mint(); $this->assertTrue($hashcash->verify()); $this->assertTrue($db->addHashcash($hashcash)); $hashcash = new Hashcash(); $hashcash->setVersion(1); $hashcash->setBits(5); $hashcash->setDate(date(Hashcash::DATE_FORMAT, $ts - 3600 * 24 * 90)); $hashcash->setResource('res2'); $hashcash->mint(); $this->assertFalse($hashcash->verify()); $this->assertTrue($db->addHashcash($hashcash)); $hashcash = new Hashcash(); $hashcash->setVersion(1); $hashcash->setBits(5); $hashcash->setDate(date(Hashcash::DATE_FORMAT, $ts - 3600 * 24 * 90)); $hashcash->setResource('res3'); $hashcash->setExpiration(3600 * 24 * 120); $hashcash->mint(); $this->assertTrue($hashcash->verify()); $this->assertTrue($db->addHashcash($hashcash)); $hashcash = new Hashcash(); $hashcash->setVersion(1); $hashcash->setBits(5); $hashcash->setDate(date(Hashcash::DATE_FORMAT, $ts - 3600 * 24 * 10)); $hashcash->setResource('res4'); $hashcash->mint(); $this->assertTrue($hashcash->verify()); $this->assertTrue($db->addHashcash($hashcash)); $hashcash = new Hashcash(); $hashcash->setVersion(1); $hashcash->setBits(5); $hashcash->setDate(date('ymdHis', $ts - 60)); $hashcash->setResource('res5'); $hashcash->setExpiration(30); $hashcash->mint(); $this->assertFalse($hashcash->verify()); $this->assertTrue($db->addHashcash($hashcash)); $hashcash = new Hashcash(); $hashcash->setVersion(1); $hashcash->setBits(5); $hashcash->setDate(date(Hashcash::DATE_FORMAT12, $ts - 60)); $hashcash->setResource('res6'); $hashcash->mint(); $this->assertTrue($hashcash->verify()); $this->assertTrue($db->addHashcash($hashcash)); #fwrite(STDOUT, __METHOD__.': save '.$db->save()."\n"); $this->assertTrue($db->save() > 0); $this->assertFileExists('test_data/test_hashcashs3.yml'); }
print 'signal setup: ' . ($sig ? 'ok' : 'failed') . "\n"; $sig = pcntl_signal(SIGINT, 'sigExit'); print 'signal setup: ' . ($sig ? 'ok' : 'failed') . "\n"; $sig = pcntl_signal(SIGTERM, 'sigExit'); print 'signal setup: ' . ($sig ? 'ok' : 'failed') . "\n"; fwrite(STDOUT, 'bits: ' . BITS . "\n"); fwrite(STDOUT, 'tests: ' . TESTS . "\n"); $diffMin = TIME_MAX; $diffMax = 0; for ($testno = 1; $testno <= TESTS && !$exit; $testno++) { $hashcash = new Hashcash(BITS, '*****@*****.**'); $stamp = ''; $start = time(); fwrite(STDOUT, 'mint ' . $testno . '/' . TESTS . ': '); pcntl_alarm(TIME_MAX); $stamp = $hashcash->mint(); pcntl_alarm(null); $diff = time() - $start; if ($diff > $diffMax) { $diffMax = $diff; } if ($diff < $diffMin) { $diffMin = $diff; } fwrite(STDOUT, $diff . ' sec "' . $stamp . '" ' . $hashcash->getAttempts() . "\n"); $times[] = $diff; if (!$stamp) { break; } } fwrite(STDOUT, 'bits: ' . BITS . "\n");
public function testVerify() { #$this->markTestIncomplete('This test has not been implemented yet.'); #$this->assertTrue(true); return; $hashcash = new Hashcash(); $hashcash->setExpiration(0); $this->assertTrue($hashcash->verify('1:20:140422:mint2::ArrRIabEj3nZrOcM:0000000000007u1E')); $this->assertTrue($hashcash->verify('1:24:140422:mint2:ext1:Nde2ffWsRoe3DXVQ:00000001M+iu')); $this->assertTrue($hashcash->verify('1:20:140422:mint2:ext2:salt2:256507')); $this->assertTrue($hashcash->verify('1:28:140422:::s15xXleWocBKSA95Zw4e1Q==:245861178')); $this->assertTrue($hashcash->verify('1:21:870221:thefox::2B6kv/rFiCdJRzqhH7P2eA==:995214')); $this->assertFalse($hashcash->verify('1:20:140422:mint3::ArrRIabEj3nZrOcM:0000000000007u1E')); $hashcash->setExpiration(3600 * 24 * 365); $this->assertFalse($hashcash->verify('1:21:870221:thefox::2B6kv/rFiCdJRzqhH7P2eA==:995214')); $hashcash1 = new Hashcash(); $hashcash1->setBits(10); $hashcash2 = new Hashcash(); $this->assertTrue($hashcash2->verify($hashcash1->mint())); }