fix generating hashes not being removed when done, add endpoint to get generating hashes
This commit is contained in:
parent
a01b645a79
commit
feb8004c95
@ -4,8 +4,13 @@ Create blocks with the client api server
|
||||
"""
|
||||
import ujson as json
|
||||
import threading
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from flask import Blueprint, Response, request, g
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from deadsimplekv import DeadSimpleKV
|
||||
|
||||
import onionrblocks
|
||||
from onionrcrypto import hashers
|
||||
from onionrutils import bytesconverter
|
||||
@ -31,7 +36,6 @@ ib = Blueprint('insertblock', __name__)
|
||||
|
||||
@ib.route('/insertblock', methods=['POST'])
|
||||
def client_api_insert_block():
|
||||
encrypt: bool = False
|
||||
insert_data: JSONSerializable = request.get_json(force=True)
|
||||
message = insert_data['message']
|
||||
message_hash = bytesconverter.bytes_to_str(hashers.sha3_hash(message))
|
||||
|
@ -50,7 +50,8 @@ class PrivateEndpoints:
|
||||
def wwwPublic(path):
|
||||
if not config.get("www.private.run", True):
|
||||
abort(403)
|
||||
return send_from_directory(config.get('www.private.path', 'static-data/www/private/'), path)
|
||||
return send_from_directory(config.get('www.private.path',
|
||||
'static-data/www/private/'), path)
|
||||
|
||||
@private_endpoints_bp.route('/hitcount')
|
||||
def get_hit_count():
|
||||
@ -62,7 +63,7 @@ class PrivateEndpoints:
|
||||
return Response("pong!")
|
||||
|
||||
@private_endpoints_bp.route('/lastconnect')
|
||||
def lastConnect():
|
||||
def last_connect():
|
||||
return Response(str(client_api.publicAPI.lastRequest))
|
||||
|
||||
@private_endpoints_bp.route('/waitforshare/<name>', methods=['post'])
|
||||
@ -104,25 +105,26 @@ class PrivateEndpoints:
|
||||
pass
|
||||
|
||||
@private_endpoints_bp.route('/getuptime')
|
||||
def showUptime():
|
||||
def show_uptime():
|
||||
return Response(str(client_api.getUptime()))
|
||||
|
||||
@private_endpoints_bp.route('/getActivePubkey')
|
||||
def getActivePubkey():
|
||||
def get_active_pubkey():
|
||||
return Response(pub_key)
|
||||
|
||||
@private_endpoints_bp.route('/getHumanReadable')
|
||||
def getHumanReadableDefault():
|
||||
def get_human_readable_default():
|
||||
return Response(mnemonickeys.get_human_readable_ID())
|
||||
|
||||
@private_endpoints_bp.route('/getHumanReadable/<name>')
|
||||
def getHumanReadable(name):
|
||||
def get_human_readable(name):
|
||||
name = unpaddedbase32.repad(bytesconverter.str_to_bytes(name))
|
||||
return Response(mnemonickeys.get_human_readable_ID(name))
|
||||
|
||||
@private_endpoints_bp.route('/getBase32FromHumanReadable/<words>')
|
||||
def get_base32_from_human_readable(words):
|
||||
return Response(bytesconverter.bytes_to_str(mnemonickeys.get_base32(words)))
|
||||
return Response(
|
||||
bytesconverter.bytes_to_str(mnemonickeys.get_base32(words)))
|
||||
|
||||
@private_endpoints_bp.route('/gettorsocks')
|
||||
def get_tor_socks():
|
||||
@ -130,7 +132,8 @@ class PrivateEndpoints:
|
||||
|
||||
@private_endpoints_bp.route('/setonboarding', methods=['POST'])
|
||||
def set_onboarding():
|
||||
return Response(config.onboarding.set_config_from_onboarding(request.get_json()))
|
||||
return Response(
|
||||
config.onboarding.set_config_from_onboarding(request.get_json()))
|
||||
|
||||
@private_endpoints_bp.route('/os')
|
||||
def get_os_system():
|
||||
@ -139,7 +142,8 @@ class PrivateEndpoints:
|
||||
@private_endpoints_bp.route('/torready')
|
||||
def is_tor_ready():
|
||||
"""If Tor is starting up, the web UI is not ready to be used."""
|
||||
return Response(str(g.too_many.get(NetController).readyState).lower())
|
||||
return Response(
|
||||
str(g.too_many.get(NetController).readyState).lower())
|
||||
|
||||
@private_endpoints_bp.route('/gettoraddress')
|
||||
def get_tor_address():
|
||||
@ -147,3 +151,12 @@ class PrivateEndpoints:
|
||||
if not config.get('general.security_level', 0) == 0:
|
||||
abort(404)
|
||||
return Response(get_tor()[0])
|
||||
|
||||
@private_endpoints_bp.route('/getgeneratingblocks')
|
||||
def get_generating_blocks() -> Response:
|
||||
return Response(
|
||||
','.join(
|
||||
g.too_many.get_by_string('DeadSimpleKV').get(
|
||||
'generating_blocks'
|
||||
))
|
||||
)
|
||||
|
@ -262,7 +262,8 @@ def insert_block(data: Union[str, bytes], header: str = 'txt',
|
||||
localcommand.local_command,
|
||||
'/daemon-event/remove_from_insert_queue_wrapper',
|
||||
post=True,
|
||||
post_data={'block_hash': retData},
|
||||
post_data={'block_hash':
|
||||
bytesconverter.bytes_to_str(crypto.hashers.sha3_hash(data))},
|
||||
is_json=True
|
||||
).get(timeout=5)
|
||||
return retData
|
||||
|
@ -25,14 +25,20 @@ flask_blueprint = Blueprint('debugAPI', __name__)
|
||||
|
||||
|
||||
@flask_blueprint.route('/debug/dump_shared_state')
|
||||
def get_shared_state():
|
||||
def get_shared_state() -> Response:
|
||||
"""Return somewhat human-readable dump of shared toomanyobjects."""
|
||||
resp = ""
|
||||
for i in g.too_many.objects.keys:
|
||||
resp += i + dir(g.too_many.objects.keys[i])
|
||||
resp += i + dir(g.too_many.objects.keys[i]) + "\n"
|
||||
return Response(resp)
|
||||
|
||||
|
||||
@flask_blueprint.route('/debug/dump_shared_vars')
|
||||
def get_shared_vars():
|
||||
def get_shared_vars() -> Response:
|
||||
"""Return somewhat human-readable dump of pseudo globals (DeadSimpleKV)."""
|
||||
kv: DeadSimpleKV = g.too_many.get(DeadSimpleKV)
|
||||
return Response(dir(kv._data))
|
||||
resp = ""
|
||||
for i in kv.keys:
|
||||
resp += i + dir(g.too_many.objects.keys[i]) + "\n"
|
||||
return Response(resp)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user