[Blockchain A-Z] 블록체인 만들기 : step 10 - 11

yebeen·2022년 8월 12일
0

Blockchain A-Z

목록 보기
18/43
post-thumbnail

Get요청

- Get 블록

@app.route('/mine_block', methods=['GET'])
def mine_block():
	previous_block = blockchain.get_previous_block()
    previous_proof = previous_block['proof']
    proof = blockchain.proof_of_work(pervious_proof)
    previous_hash = blockchain.hash(previous_block)
    block = blockahin.create_block(proof, previous_hash)
    response = {'message' 		: 'congratulations, you just mined a block!',
    			'index' 		: block['index'],
                'timestamp' 	: block['timestamp'],
                'proof'			: block['proof'],
                'privious_hash' : block['privious_hash']}
	return jsonify(response), 200
  • 새 블록을 얻고자 하므로 블록을 얻기 위한 get 메서드를 사용합니다.
  • 블록을 채굴하기 위한 mine_block이라는 새로운 함수를 정의합니다.
    • 작업 증명 문제를 해결하기 위해 이전 증명을 얻습니다.
  • 증명을 통해 이전 해시 값을 얻은 후 create block 함수를 호출합니다.
  • 사용자 친화적 인터페이스인 Postman에 표시하기 위해 Json 형식으로 표시합니다.
    • 응답을 딕셔너리로 다른 키도 추가할 수 있도록 만듭니다.
  • jsonify 함수를 사용해서 응답을 Json형식으로 반환합니다.
  • 모두 정상임을 말하기 위한 200 HTTP 상태 코드도 반환합니다.

Get 전체 블록체인

@app.route('/get_chain', methods=['GET'])
def get_chain():
	response = {'chain': blockchain.chain.
    			'length': len(blockchain.chain)}
    return jsonify(response), 200
  • 요청의 이름을 지정하기 위해 route 데코레이터를 사용합니다.
  • 체인이 길 때 실용적일 수 있는 체인의 길이를 표시해줍니다.


참고

profile
🐣🐥

0개의 댓글