Beispiel #1
0
<?php

require 'vendor/autoload.php';
use TheFox\Pow\Hashcash;
// Example 1: simple mint (real world example)
$hashcash = new Hashcash();
$hashcash->setBits(20);
$hashcash->setResource('*****@*****.**');
try {
    print "stamp1: '" . $hashcash->mint() . "'\n";
} catch (Exception $e) {
    print 'ERROR 1: ' . $e->getMessage() . "\n";
}
// Example 2a: simple mint, another way (real world example)
$hashcash = new Hashcash(20, '*****@*****.**');
$stamp = '';
try {
    $stamp = $hashcash->mint();
    print "stamp2: '" . $stamp . "'\n";
} catch (Exception $e) {
    print 'ERROR 2: ' . $e->getMessage() . "\n";
}
// Example 2b: verify a stamp (real world example)
$hashcash = new Hashcash();
try {
    print "stamp2 verify: '" . ($hashcash->verify($stamp) ? 'Ok' : 'failed') . "'\n";
} catch (Exception $e) {
    print 'ERROR 3: ' . $e->getMessage() . "\n";
}
// Example 3a: use a certain date
$hashcash = new Hashcash(20, '*****@*****.**');
Beispiel #2
0
 public function testDoublespend2()
 {
     #fwrite(STDOUT, __METHOD__."\n");
     $db = new HashcashDb();
     $hashcash = new Hashcash();
     $hashcash->setVersion(1);
     $hashcash->setBits(5);
     $hashcash->setResource('thefox');
     $hashcash->setSuffix(1);
     $this->assertTrue($db->addHashcash($hashcash));
     $hashcash = new Hashcash();
     $hashcash->setVersion(1);
     $hashcash->setBits(5);
     $hashcash->setResource('thefox');
     $hashcash->setSuffix(1);
     $this->assertFalse($db->addHashcash($hashcash));
     $this->assertEquals(1, count($db->getHashcashs()));
 }
Beispiel #3
0
 /**
  * @group large
  */
 public function testMint1()
 {
     #$this->markTestIncomplete('This test has not been implemented yet.');
     #$this->assertTrue(true); return;
     $hashcash = new Hashcash();
     $hashcash->setVersion(1);
     $hashcash->setBits(5);
     $hashcash->setDate('140422');
     $hashcash->setResource('mint2');
     $hashcash->setSalt('0000000c4c51ffcfc37b523');
     $this->assertEquals('1:5:140422:mint2::0000000c4c51ffcfc37b523:3', $hashcash->mint());
     $hashcash = new Hashcash();
     $hashcash->setVersion(1);
     $hashcash->setBits(7);
     $hashcash->setDate('140422');
     $hashcash->setResource('mint2');
     $hashcash->setExtension('ext2');
     $hashcash->setSalt('salt2');
     $this->assertEquals('1:7:140422:mint2:ext2:salt2:13', $hashcash->mint());
     $hashcash = new Hashcash();
     $hashcash->setVersion(1);
     $hashcash->setBits(6);
     $hashcash->setDate('870221');
     $hashcash->setResource('thefox');
     $hashcash->setSalt('SNIrgHNPdcH3NNu+0CcG8g==');
     $this->assertEquals('1:6:870221:thefox::SNIrgHNPdcH3NNu+0CcG8g==:45', $hashcash->mint());
     $hashcash = new Hashcash();
     $hashcash->setVersion(1);
     $hashcash->setBits(6);
     $hashcash->setDate('8702210958');
     $hashcash->setResource('thefox');
     $hashcash->setSalt('sPc4d5G2UZpTuTmyfOy6IA==');
     $this->assertEquals('1:6:8702210958:thefox::sPc4d5G2UZpTuTmyfOy6IA==:13', $hashcash->mint());
     $hashcash = new Hashcash();
     $hashcash->setVersion(1);
     $hashcash->setBits(5);
     $hashcash->setDate('870221095824');
     $hashcash->setResource('thefox');
     $hashcash->setSalt('lN4IGUU6R5FH27OhM+DGkw==');
     $this->assertEquals('1:5:870221095824:thefox::lN4IGUU6R5FH27OhM+DGkw==:14', $hashcash->mint());
     $hashcash = new Hashcash();
     $hashcash->setVersion(1);
     $hashcash->setBits(5);
     $hashcash->setDate('140401');
     $hashcash->setResource('thefox');
     $hashcash->setSalt('GeUosqsUPpxts37XWLeWdg==');
     $this->assertEquals('1:5:140401:thefox::GeUosqsUPpxts37XWLeWdg==:1', $hashcash->mint());
     $hashcash = new Hashcash();
     $hashcash->setVersion(1);
     $hashcash->setBits(5);
     $hashcash->setDate('140325');
     $hashcash->setResource('thefox');
     $hashcash->setSalt('Ifr62IiXO9YHQ2tXyqSOUQ==');
     $this->assertEquals('1:5:140325:thefox::Ifr62IiXO9YHQ2tXyqSOUQ==:5', $hashcash->mint());
     $this->assertEquals('01d106345750ab94a8d80e1c0dbe0da3662d476e', $hashcash->getHash());
 }