Skip to content
Snippets Groups Projects
Commit a0ae9040 authored by Pascal Engélibert's avatar Pascal Engélibert :bicyclist:
Browse files

Currency settings

parent 2a9849f5
No related branches found
No related tags found
No related merge requests found
Pipeline #5715 passed
......@@ -49,12 +49,13 @@ PUBLIC_PORT = BIND_PORT
ID_SALT = ""
ID_PASSWORD = ""
BMA_HOSTS = ["g1.duniter.fr 443", "g1.duniter.org 443", "g1.presles.fr 443", "g1.cgeek.fr 443", "ts.g1.librelois.fr 443"]
MIX_INTERVAL = 60
MIX_INTERVAL = 120
MIX_MIN_TXS = 5 # minimum amount of txs to mix
MIX_REQ_AGE_MAX = 604800 # maximum mix request age before return to sender
PEER_INFO_INTERVAL = 60 # interval for renewing my peer document
PEER_SIG_AGE_MAX = 600 # max age of a peer document signature
PEER_INFO_INTERVAL = 600 # interval for renewing my peer document
PEER_SIG_AGE_MAX = 604800 # max age of a peer document signature
PEER_DETECT_INTERVAL = 120 # interval for fetching peer list
CURRENCY = "g1"
def send_response(client, code, resp, dataformat="ubjson"):
if dataformat == "ubjson":
......@@ -179,6 +180,7 @@ def read_config(cdir, conf_overwrite={}):
utils.logprint("Config: bad JSON => abort", utils.LOG_ERROR)
exit(1)
conf.setdefault("currency", CURRENCY)
conf.setdefault("server", {})
conf["server"].setdefault("bind_host", BIND_HOST)
conf["server"].setdefault("bind_port", BIND_PORT)
......@@ -495,7 +497,7 @@ class ServerThread(Thread):
if "new" in url:
try:
new_peer = utils.Peer(content)
new_peer = utils.Peer(self.conf, content)
except Exception as e: # TODO more specific exceptions
send_response(client, "400 Bad Request", {"error": "bad_peer"}, resp_format)
utils.logprint("Peer: bad peer: "+str(e), utils.LOG_ERROR)
......@@ -580,7 +582,7 @@ class ClientThread(Thread):
continue
try:
new_peer = utils.Peer(data["info"])
new_peer = utils.Peer(self.conf, data["info"])
except Exception as e:
print("Peer detection: info: "+str(e))
new_peers.setdefault(new_peer.hash, [])
......@@ -588,7 +590,7 @@ class ClientThread(Thread):
for raw in data["peers"]:
try:
new_peer = utils.Peer(raw)
new_peer = utils.Peer(self.conf, raw)
except Exception as e:
utils.logprint("Peer detection: "+str(e), utils.LOG_WARN)
if new_peer.hash == self.local_peer.hash:
......@@ -829,7 +831,7 @@ def main():
# Load peers
peers = {}
db_peers = plyvel.DB(DIR+"/db_peers", create_if_missing=True)
utils.load_peers(db_peers, peers)
utils.load_peers(conf, db_peers, peers)
# Load txs
pool = []
......@@ -933,12 +935,12 @@ if __name__ == "__main__":
# Load peers
peers = {}
db_peers = plyvel.DB(DIR+"/db_peers", create_if_missing=True)
utils.load_peers(db_peers, peers)
utils.load_peers(conf, db_peers, peers)
# Import peers
for raw in new_peers:
try:
new_peer = utils.Peer(raw)
new_peer = utils.Peer(conf, raw)
except Exception as e: # TODO more specific exceptions
print("Error: invalid peer data: "+str(e))
continue
......
......@@ -126,7 +126,7 @@ def getargv(arg:str, default:str="", n:int=1, args:list=sys.argv) -> str:
class Peer:
VERSION = "1"
def __init__(self, raw:bytes):
def __init__(self, conf:dict, raw:bytes):
self.rectime = time.time()
self.raw = raw
data = ubjson.loadb(raw)
......@@ -136,6 +136,7 @@ class Peer:
# TODO try except
# TODO tests
assert data["currency"] == conf["currency"] , "Not the same currency"
self.doctype = data["doctype"]
self.docver = data["docver"]
......@@ -156,6 +157,7 @@ class Peer:
data = {
"doctype": "peer",
"docver": Peer.VERSION,
"currency": conf["currency"],
"pubkey": keys.pubkey,
"sigtime": time.time(),
"host": [conf["server"]["public_host"], conf["server"]["public_port"]],
......@@ -168,11 +170,11 @@ class Peer:
"raw": raw
}
raw = ubjson.dumpb(data)
return Peer(raw)
return Peer(conf, raw)
def load_peers(db_peers:plyvel.DB, peers:dict):
def load_peers(conf:dict, db_peers:plyvel.DB, peers:dict):
for _, data in db_peers:
peer = Peer(data)
peer = Peer(conf, data)
peers[peer.hash] = peer
def save_peers(db_peers:plyvel.DB, peers:dict):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment