基于区块链的股权交易系统开发实现(源码示例)
2023.05.17 13:58浏览量:74简介:网络中的许多重要数据都可以通过区块链进行存储和访问,区块链的去中心化可以更好地防止黑客入侵 。
网络中的许多重要数据都可以通过区块链进行存储和访问,区块链的去中心化可以更好地防止黑客入侵 。 这使得区块链成为了一项安全便捷的信息交易工具,随着对区块链研究的不断深入 ,区块链技术也被应用到更多的领域中去。
区块链中的每个参与维护节点都可以获得完整的数据记录,利用区块链的可靠和集体维护特性,可以确认股权所有者的权利。区块链是存储记录的理想解决方案,适用于土地所有权和股权交易等场景。
区块链股权登记,将充分利用区块链账本的安全透明、不可篡改、易于跟踪等 特性 ,记录公司股权及其变更 信息 。股权所有者凭借私钥,可证明对该股权的所有权,股权转让时通过区块链系统转让给下家,产权明晰,记录明确。整个 交易 过程无需第三方的参与。
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()
发表评论
登录后可评论,请前往 登录 或 注册