Hyperledger

본문 바로가기
사이트 내 전체검색


Hyperledger
Hyperledger

5. 체인코드 연동 Flask 웹어플리케이션 만들기

페이지 정보

작성자 관리자 댓글 0건 조회 3,004회 작성일 19-08-26 13:06

본문

5. 체인코드 연동 Flask 웹어플리케이션 만들기

Hyperledger Fabric과 Flask 웹어플리케이션 서버 구성

1.png

 

 

쉘프로그램 작성

웹어플리케이션에서 호출할 쉘프로그램을 만든다.

 

# wget https://www.leelab.co.kr/down/fabric-samples/query-users.sh  -O scripts/query-users.sh

 

# cat scripts/query-users.sh

 

root@client:~/hyperledger/fabric-samples/first-network# wget https://www.leelab.co.kr/down/fabric-samples/query-users.sh  -O scripts/query-users.sh
--2019-11-30 03:49:19--  https://www.leelab.co.kr/down/fabric-samples/query-users.sh
Resolving www.leelab.co.kr (www.leelab.co.kr)... 202.31.147.218
접속 www.leelab.co.kr (www.leelab.co.kr)|202.31.147.218|:443... 접속됨.
HTTP request sent, awaiting response... 200 OK
Length: 109 [application/x-sh]
Saving to: ‘scripts/query-users.sh’

scripts/query-users.sh      100%[=========================================>]     109  --.-KB/s    in 0s

2019-11-30 03:49:19 (2.80 MB/s) - ‘scripts/query-users.sh’ saved [109/109]

root@client:~/hyperledger/fabric-samples/first-network# cat scripts/query-users.sh
#!/bin/bash
USERID="$1"

peer chaincode query -C mychannel -n mycc -c '{"Args":["user_read", "'$USERID'" ]}'
root@client:~/hyperledger/fabric-samples/first-network#

root@client:~/hyperledger/fabric-samples/first-network# chmod 755 scripts/query-users.sh
 

 

Flask 웹어플리케이션 만들기

 

터미널2에서 Flask 웹어플리케이션을 작성한다.

 

 

root@client:~# cd pyApp/
root@client:~/pyApp# mkdir -p myPS/templates

root@client:~/pyApp# cd myPS/

root@client:~/pyApp/myPS# vi app.py

from flask import Flask, render_template

import json
import os
import sys
import subprocess

app = Flask(__name__)

@app.route('/')
def hello():
    return render_template('hello.html' )

@app.route('/user/<userid>')
def user(userid):
    result = subprocess.check_output ('FABRIC_CFG_PATH=/root/hyperledger/fabric-samples/first-network/ docker exec cli scripts/query-users.sh '+userid , shell=True)
    print(result)
    userinfo = json.loads(result)

    return render_template('user_read.html', userid=userid, userinfo=userinfo)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000,debug=True)

 

root@client:~/pyApp/myPS# vi templates/hello.html
<h1>Hello World!</h1>

 

root@client:~/pyApp/myPS# vi templates/user_read.html
<H1>User Info</H1>
<p>Name : {{userinfo.NM}}</p>

웹어플리케이션을 구동한다.

 

root@client:~/pyApp/myPS# python app.py
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 301-791-187

 

웹브라우저로 http://192.168.0.105:8000/user/admin 을 입력하면 터미널2의 웹어플리케이션 로그에서 블록체인에서 받아온값을 확인할 수 있다.

 

{"NM":"LeeJinKwan","PW":"1234","PN":"0","CC":"0","AP":"0"}

192.168.0.101 - - [30/Nov/2019 04:17:26] "GET /user/admin HTTP/1.1" 200 - 

 

2.PNG

 

 

소스 다운로드

 

# wget https://www.leelab.co.kr/down/fabric-samples/myPS.tar.gz

 

첨부파일

  • myPS.tar.gz (642byte) 30회 다운로드 | DATE : 2019-11-30 04:41:08

댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.