OSDN Git Service

new repo
[bytom/vapor.git] / tools / side_chain_tool / app / __init__.py
1 # -*- coding:utf-8 -*-
2 from os import path, environ
3 from flask import Flask, request
4 from flask_bootstrap import Bootstrap
5 from flask_sqlalchemy import SQLAlchemy
6 from werkzeug.routing import BaseConverter
7 from config import conifg
8 import subprocess
9
10
11 class RegexConverter(BaseConverter):
12     def __init__(self, url_map, *items):
13         super(RegexConverter, self).__init__(url_map)
14         self.regex = items[0]
15
16 bootstrap = Bootstrap()
17 db = SQLAlchemy()
18 basedir = path.abspath(path.dirname(__file__))
19
20 # 启动主链
21 def startmainchain(datadir, args=""):
22     shutil.rmtree(datadir)
23     subprocess.Popen(("bytom init -r="+datadir+" "+args).split(), stdout=subprocess.PIPE)
24     subprocess.Popen(("bytom node -r="+datadir+" "+args).split(), stdout=subprocess.PIPE)
25
26 # 启动侧链
27 #./bytomd.exe node -r "side_chain" --validate_pegin true --side.fedpeg_xpubs "227e08f80ebc11bc0406ffe9f941b117a0259dfbae3c266f96030ddb7d89760d33b9007a5d5d25c95b34650ad3a4c830fc5dcf96828820b7d98e6d7070f835c2"  --side.sign_block_xpubs "227e08f80ebc11bc0406ffe9f941b117a0259dfbae3c266f96030ddb7d89760d33b9007a5d5d25c95b34650ad3a4c830fc5dcf96828820b7d98e6d7070f835c2" --signer "581ffdbd66a895ba28561d0931e93857e253372b465549aa22f94830118e2a4633b9007a5d5d25c95b34650ad3a4c830fc5dcf96828820b7d98e6d7070f835c2" --side.parent_genesis_block_hash "a97a7a59e0e313f9300a2d7296336303889930bfdf5a80d8a9b05db343c03380"
28 def startsidechain(datadir, args=""):
29     shutil.rmtree(datadir)
30     subprocess.Popen((ELEMENTSPATH+"/bytom_side init -r="+datadir+" "+args).split(), stdout=subprocess.PIPE)
31     subprocess.Popen((ELEMENTSPATH+"/bytom_side node -r="+datadir+" "+args).split(), stdout=subprocess.PIPE)
32
33 def create_app(config_name):
34     app = Flask(__name__)
35     app.config.from_object(conifg[config_name])   # 配置都在config.py这个文件中
36     conifg[config_name].init_app(app)
37
38     bootstrap.init_app(app)
39     db.init_app(app)
40
41     from .api import api as api_blueprint
42     app.register_blueprint(api_blueprint, url_prefix='/api')
43     #app.register_blueprint(api_blueprint, static_folder='static', template_folder='templates')
44
45     return app
46