Added vdf create wrapper
Removed some dead code
This commit is contained in:
parent
8f784f208b
commit
6a8ab46815
15
src/onionrproofs/vdf.py
Normal file
15
src/onionrproofs/vdf.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import multiprocessing
|
||||||
|
|
||||||
|
import mimcvdf
|
||||||
|
|
||||||
|
|
||||||
|
def _wrap_vdf_create(queue, block_data_bytes, rounds):
|
||||||
|
queue.put(mimcvdf.vdf_create(block_data_bytes, rounds))
|
||||||
|
|
||||||
|
|
||||||
|
def do_vdf(block_data_bytes):
|
||||||
|
queue = multiprocessing.Queue()
|
||||||
|
vdf_proc = multiprocessing.Process(target=_wrap_vdf_create, args=(queue, block_data_bytes, 1000))
|
||||||
|
vdf_proc.start()
|
||||||
|
vdf_proc.join()
|
||||||
|
return queue.get()
|
@ -1,2 +0,0 @@
|
|||||||
from .extracted25519 import extract_ed25519_from_onion_address
|
|
||||||
from .neighbors import identify_neighbors
|
|
@ -1,14 +0,0 @@
|
|||||||
from base64 import b32decode
|
|
||||||
from typing import TYPE_CHECKING
|
|
||||||
|
|
||||||
from onionrutils.bytesconverter import str_to_bytes
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
|
||||||
from onionrtypes import Ed25519PublicKeyBytes, OnionAddressString
|
|
||||||
|
|
||||||
|
|
||||||
def extract_ed25519_from_onion_address(
|
|
||||||
address: 'OnionAddressString') -> 'Ed25519PublicKeyBytes':
|
|
||||||
address = str_to_bytes(address).replace(b'.onion', b'').upper()
|
|
||||||
ed25519 = b32decode(address)[:-3]
|
|
||||||
return ed25519
|
|
@ -1,40 +0,0 @@
|
|||||||
from onionrtypes import OnionAddressString
|
|
||||||
from typing import Iterable
|
|
||||||
|
|
||||||
from collections import OrderedDict
|
|
||||||
|
|
||||||
from .extracted25519 import extract_ed25519_from_onion_address
|
|
||||||
|
|
||||||
|
|
||||||
def identify_neighbors(
|
|
||||||
address: OnionAddressString,
|
|
||||||
peers: Iterable[OnionAddressString],
|
|
||||||
closest_n: int) -> OnionAddressString:
|
|
||||||
"""Identify node addresses that are closest
|
|
||||||
in value to a given node address"""
|
|
||||||
peers_to_test = list(peers)
|
|
||||||
|
|
||||||
try:
|
|
||||||
peers_to_test.remove(address)
|
|
||||||
except ValueError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
address = extract_ed25519_from_onion_address(address)
|
|
||||||
address_int = int.from_bytes(address, "big")
|
|
||||||
closeness_values = []
|
|
||||||
end_result = []
|
|
||||||
|
|
||||||
def _calc_closeness(y):
|
|
||||||
ret = abs(
|
|
||||||
address_int -
|
|
||||||
int.from_bytes(extract_ed25519_from_onion_address(y), "big"))
|
|
||||||
return ret
|
|
||||||
|
|
||||||
for peer in peers_to_test:
|
|
||||||
closeness_values.append((peer, _calc_closeness(peer)))
|
|
||||||
closeness_values.sort(key=lambda p: p[1])
|
|
||||||
for i, result in enumerate(closeness_values):
|
|
||||||
end_result.append(result[0])
|
|
||||||
if i > closest_n:
|
|
||||||
break
|
|
||||||
return end_result
|
|
@ -1,10 +0,0 @@
|
|||||||
from typing import List
|
|
||||||
|
|
||||||
from onionrutils.localcommand import local_command
|
|
||||||
from .neighbors import identify_neighbors
|
|
||||||
|
|
||||||
|
|
||||||
def stream_pool():
|
|
||||||
|
|
||||||
peers = lioc
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
|||||||
from secrets import token_bytes
|
|
||||||
from typing import TYPE_CHECKING
|
|
||||||
import socket
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
|
||||||
from stem.control import Controller
|
|
||||||
|
|
||||||
from onionrtypes import OnionAddressString
|
|
||||||
|
|
||||||
import yam
|
|
||||||
|
|
||||||
|
|
||||||
def peer_tunnel(tor_controller: Controller, peer):
|
|
||||||
socks_port = tor_controller.get_conf('SocksPort')
|
|
||||||
|
|
||||||
class Connected:
|
|
||||||
connected = False
|
|
||||||
|
|
||||||
send_buffer = []
|
|
||||||
rec_buffer = []
|
|
||||||
rec_address = None
|
|
||||||
|
|
||||||
yam.client(1, peer, socks_port, send_buffer, rec_buffer, Connected)
|
|
||||||
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
|
||||||
ip = '127.0.0.1'
|
|
||||||
s.bind((ip, 0))
|
|
||||||
s.listen(1)
|
|
||||||
port = s.getsockname()[1]
|
|
||||||
serv = tor_controller.create_ephemeral_hidden_service(
|
|
||||||
{1337: '127.0.0.1:' + str(port)},
|
|
||||||
key_content='ED25519-V3',
|
|
||||||
await_publication=True,
|
|
||||||
)
|
|
||||||
rec_address = serv.service_id
|
|
||||||
conn, addr = s.accept()
|
|
||||||
yam.server(1, tor_controller, conn, send_buffer, rec_buffer, Connected)
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user