Beispiel #1
0
    def test_create_wait_certificate_before_create_wait_timer(self):
        # Need to create signup information
        SignupInfo.create_signup_info(
            originator_public_key_hash=self._originator_public_key_hash,
            most_recent_wait_certificate_id=NullIdentifier)

        with self.assertRaises(WaitCertificateError):
            WaitCertificate.create_wait_certificate("Reader's Digest")
Beispiel #2
0
    def test_create_wait_certificate_before_create_wait_timer(self):
        # Need to create signup information
        SignupInfo.create_signup_info(
            originator_public_key=self._originator_public_key,
            validator_network_basename="America's Most Watched Network",
            most_recent_wait_certificate_id=NullIdentifier)

        with self.assertRaises(WaitCertificateError):
            WaitCertificate.create_wait_certificate("Reader's Digest")
Beispiel #3
0
    def test_create_wait_certificate(self):
        # Need to create signup information and wait timer first
        signup_info = \
            SignupInfo.create_signup_info(
                originator_public_key_hash=self._originator_public_key_hash,
                most_recent_wait_certificate_id=NullIdentifier)

        wt = WaitTimer.create_wait_timer([])

        # Now we can create a wait certificate and verify that it correlates
        # to the wait timer we just created
        wc = WaitCertificate.create_wait_certificate("Reader's Digest")

        self.assertIsNotNone(wc)

        self.assertEquals(wc.previous_certificate_id,
                          wt.previous_certificate_id)
        self.assertEqual(wc.local_mean, wt.local_mean)
        self.assertEqual(wc.request_time, wt.request_time)
        self.assertEqual(wc.duration, wt.duration)
        self.assertEqual(wc.block_digest, "Reader's Digest")
        self.assertIsNotNone(wc.signature)
        self.assertIsNotNone(wc.identifier)

        # A newly-created wait certificate should be valid
        self.assertTrue(wc.is_valid([], signup_info.poet_public_key))
Beispiel #4
0
    def test_wait_certificate_serialization(self):
        # Need to create signup information and wait timer first
        signup_info = \
            SignupInfo.create_signup_info(
                originator_public_key_hash=self._originator_public_key_hash,
                most_recent_wait_certificate_id=NullIdentifier)

        wt = WaitTimer.create_wait_timer([])

        # Now we can create a wait certificate and serialize
        wc = WaitCertificate.create_wait_certificate("Reader's Digest")

        dumped = wc.dump()

        self.assertIsNotNone(dumped.get('SerializedCertificate'))
        self.assertIsNotNone(dumped.get('Signature'))

        # Deserialize and verify that wait certificates are the same
        # and that deserialized one is valid
        wc_copy = \
            WaitCertificate.wait_certificate_from_serialized(
                dumped.get('SerializedCertificate'),
                dumped.get('Signature'),
                signup_info.poet_public_key)

        self.assertEquals(wc.previous_certificate_id,
                          wc_copy.previous_certificate_id)
        self.assertEqual(wc.local_mean, wc_copy.local_mean)
        self.assertEqual(wc.request_time, wc_copy.request_time)
        self.assertEqual(wc.duration, wc_copy.duration)
        self.assertEqual(wc.block_digest, wc_copy.block_digest)
        self.assertEqual(wc.signature, wc_copy.signature)
        self.assertEqual(wc.identifier, wc_copy.identifier)

        self.assertTrue(wc_copy.is_valid([], signup_info.poet_public_key))
Beispiel #5
0
    def create_wait_certificate(self):
        """Create a wait certificate for the journal based on the wait timer.
        """
        with self._lock:
            hasher = hashlib.sha256()
            for tid in self.TransactionIDs:
                hasher.update(tid)
            block_hash = hasher.hexdigest()

            self.WaitCertificate = WaitCertificate.create_wait_certificate(
                self.WaitTimer, block_hash)
            if self.WaitCertificate:
                self.WaitTimer = None
    def create_wait_certificate(self):
        """Create a wait certificate for the journal based on the wait timer.
        """
        with self._lock:
            hasher = hashlib.sha256()
            for tid in self.TransactionIDs:
                hasher.update(tid)
            block_hash = hasher.hexdigest()

            self.WaitCertificate = WaitCertificate.create_wait_certificate(
                self.WaitTimer,
                block_hash)
            if self.WaitCertificate:
                self.WaitTimer = None
    def create_wait_certificate(self):
        """Create a wait certificate for the journal based on the wait timer.
        """
        with self._lock:
            LOGGER.debug("WAIT_TIMER: %s", str(self.WaitTimer))
            hasher = hashlib.sha256()
            for tid in self.TransactionIDs:
                hasher.update(tid)
            block_hash = hasher.hexdigest()

            self.WaitCertificate = \
                WaitCertificate.create_wait_certificate(
                    block_digest=block_hash)
            if self.WaitCertificate:
                self.WaitTimer = None
Beispiel #8
0
 def test_create_wait_certificate_before_create_signup_info(self):
     # Make sure that trying to create a wait certificate before signup
     # information is provided causes an error
     with self.assertRaises(WaitCertificateError):
         WaitCertificate.create_wait_certificate("Reader's Digest")