logo

基于区块链的股权交易系统开发实现(源码示例)

作者:薇ch3nguang2023.05.17 13:58浏览量:37

简介:网络中的许多重要数据都可以通过区块链进行存储和访问,区块链的去中心化可以更好地防止黑客入侵 。

网络中的许多重要数据都可以通过区块链进行存储和访问,区块链的去中心化可以更好地防止黑客入侵 。 这使得区块链成为了一项安全便捷的信息交易工具,随着对区块链研究的不断深入 ,区块链技术也被应用到更多的领域中去。

区块链中的每个参与维护节点都可以获得完整的数据记录,利用区块链的可靠和集体维护特性,可以确认股权所有者的权利。区块链是存储记录的理想解决方案,适用于土地所有权和股权交易等场景。

区块链股权登记,将充分利用区块链账本的安全透明、不可篡改、易于跟踪等 特性 ,记录公司股权及其变更 信息 。股权所有者凭借私钥,可证明对该股权的所有权,股权转让时通过区块链系统转让给下家,产权明晰,记录明确。整个 交易 过程无需第三方的参与。

import hashlib

import json

from time import time

class Blockchain(object):

 def __init__(self):

     self.current_transactions = []

     self.chain = []



     # 创建创世区块

     self.new_block(previous_hash=1, proof=100)



 def new_block(self, proof, previous_hash=None):

     """

     创建一个新的区块到区块链中

     :param proof: <int> 由工作证明算法生成的证明

     :param previous_hash: (Optional) <str> 前一个区块的 hash 值

     :return: <dict> 新区块

     """



     block = {

         'index': len(self.chain) + 1,

         'timestamp': time(),

         'transactions': self.current_transactions,

         'proof': proof,

         'previous_hash': previous_hash or self.hash(self.chain[-1]),

     }



     # 重置当前交易记录

     self.current_transactions = []



     self.chain.append(block)

     return block



 def new_transaction(self, sender, recipient, amount):

     """

     创建一笔新的交易到下一个被挖掘的区块中

     :param sender: <str> 发送人的地址

     :param recipient: <str> 接收人的地址

     :param amount: <int> 金额

     :return: <int> 持有本次交易的区块索引

     """

     self.current_transactions.append({

         'sender': sender,

         'recipient': recipient,

         'amount': amount,

     })



     return self.last_block['index'] + 1



 @property

 def last_block(self):

     return self.chain[-1]



 @staticmethod

 def hash(block):

     """

     给一个区块生成 SHA-256 值

     :param block: <dict> Block

     :return: <str>

     """



     # 我们必须确保这个字典(区块)是经过排序的,否则我们将会得到不一致的散列

     block_string = json.dumps(block, sort_keys=True).encode()

     return hashlib.sha256(block_string).hexdigest()

相关文章推荐

发表评论