blockchain.py 文件源码

python
阅读 32 收藏 0 点赞 0 评论 0

项目:goofycoin 作者: homeowmorphism 项目源码 文件源码
def chain_is_authentic(self):
        try:
            goofy_public_key = ExternalUser.load_goofy_public_key()
            signature_to_check = encode_data((self.recipient_public_key, self.previous_hash))

            if isinstance(self.previous_block,Coin):
                if (goofy_public_key.verify(self.previous_block.signature, str(self.previous_block.coin_id).encode()) and  
                goofy_public_key.verify(self.signature, json.dumps((str(self.recipient_public_key),str(self.previous_block.coin_id))).encode())): 
                    return True
                else: 
                    return False

            elif isinstance(self.previous_block, TransactionBlock):
                if (self.previous_hash == self.previous_block.hash and 
                self.spender_public_key == self.previous_block.recipient_public_key):
                        self.spender_public_key.verify(self.signature, signature_to_check)
                        return self.previous_block.chain_is_authentic() 
                else:
                    print("Transactions " + str(self.hash) + " and " + str(self.previous_block.hash) + " do not match.") 

            else: 
                print("Types do not match up in the chain.")

        except ecdsa.BadSignatureError:
            return False
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号