没有合适的资源?快使用搜索试试~ 我知道了~
用Python实现简单的区块链系统1
试读
26页
需积分: 0 22 下载量 130 浏览量
更新于2022-08-04
7
收藏 516KB PDF 举报
用Python实现简单的区块链系统1
Python
P2P
https://www.zhihu.com/question/26762707
HTTP
HTTP
PostmancURL
Python3.6+
"5Python"
https://github.com/dvf/blockchain
IDEPythonSublineEditPlusPyCharm
VSCodeAtom
"py_blockchain_demo"python
'blockchain.py'
Python
1
2
2.1
Blockchain
class Blockchain(object):
def __init__(self):
self.chain = []
self.current_transactions = []
def new_block(self):
# Creates a new Block and adds it to the chain
pass
def new_transaction(self):
# Adds a new transaction to the list of transactions
pass
@staticmethod
def hash(block):
# Hashes a Block
pass
@property
def last_block(self):
# Returns the last Block in the chain
pass
Blockchain
Method
Unix ()
Block
block = {
'index': 1,
'timestamp': 1506057125.900785,
'transactions': [
{
'sender': "8527147fe1f5426f9dd545de4b27ee00",
'recipient': "a77f5cdfa2934df3954a5c7c7da5df1f",
'amount': 5,
}
2.2
],
'proof': 324984774000,
'previous_hash': "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e730433
62938b9824"
}
-
-
new_transaction()
:
class Blockchain(object):
...
def new_transaction(self, sender, recipient, amount):
"""
Creates a new transaction to go into the next mined Block
:param sender: <str> Address of the Sender
:param recipient: <str> Address of the Recipient
:param amount: <int> Amount
:return: <int> The index of the Block that will hold this transactio
n
"""
self.current_transactions.append({
'sender': sender,
'recipient': recipient,
'amount': amount,
})
return self.last_block['index'] + 1
new_transaction() ---
Blockchain
()
2.3
2.4
new_block() new_transaction()
hash()
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>
"""
剩余25页未读,继续阅读
资源推荐
资源评论
5星 · 资源好评率100%
2019-08-10 上传
5星 · 资源好评率100%
126 浏览量
2024-10-05 上传
2019-08-10 上传
5星 · 资源好评率100%
5星 · 资源好评率100%
142 浏览量
2023-09-06 上传
2024-04-10 上传
114 浏览量
175 浏览量
2020-04-20 上传
169 浏览量
2024-03-24 上传
2024-11-10 上传
183 浏览量
2024-05-14 上传
196 浏览量
186 浏览量
192 浏览量
2024-05-23 上传
122 浏览量
5星 · 资源好评率100%
168 浏览量
181 浏览量
资源评论
神康不是狗
- 粉丝: 39
- 资源: 336
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【岗位说明】食品卫生管理员职责.doc
- 【岗位说明】食品供应人员职责.doc
- 【岗位说明】食品采购验收员职责.doc
- 【岗位说明】园长工作职责.doc
- 【岗位说明】园长助理职责.doc
- 【岗位说明】夜班工作人员职责.doc
- 【岗位说明】食堂主任岗位职责.doc
- 【岗位说明】消毒人员岗位职责.doc
- 【岗位说明】幼师岗位职责.doc
- 【岗位说明】园长岗位职责.doc
- 【岗位说明】值午睡人员岗位职责.doc
- 【岗位说明】主配班老师岗位职责.doc
- 【岗位说明】总教研组长岗位职责.doc
- 097-PR-宣传片案例剪辑技巧.mp4
- 【岗位说明】房地产办公文员岗位职责.doc
- 【岗位说明】房地产策划岗位职责.doc
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功