duniterpy.helpers package


duniterpy.helpers.blockchain module


convert json to duniterpy block document

class duniterpy.helpers.blockchain.JsonBlockchain(folder)

Bases: object


returns current block as a duniterpy block document


get one precise block (do not use for iteration)


parse a json chunk file


returns an iterator allowing to browse all the blockchain in practice, it will load chunk by chunk and only keep one in memory at a time


returns a JsonBlockchain object

duniterpy.helpers.money module

duniterpy.helpers.money.output_available(condition: Condition, comparison: Any, value: str | int) bool

Check if output source is available Currently only handle unique condition without composition

operator.lt(a, b) is equivalent to a < b operator.le(a, b) is equivalent to a <= b operator.gt(a, b) is equivalent to a > b operator.ge(a, b) is equivalent to a >= b

duniterpy.helpers.network module

duniterpy.helpers.network.get_available_nodes(client: Client) List[List[Dict[str, Any]]]

Get available nodes grouped and sorted by descending block_id

Each entry is a list of nodes (HeadV2 instance, inline endpoint list) sharing the same block_id:


[{“head”: HeadV2, “endpoints”: [str, …]}, …], [{“head”: HeadV2, “endpoints”: [str, …]}, …], …


You can just select the first endpoint of the first node of the first group to quickly get an available node.

groups = get_available_nodes(client) first_node_first_endpoint = groups[0][0][“endpoints”][0]

If node is down, you can select another node.

Warning: only nodes with BMAS, BASIC_MERKLED_API, and GVA endpoint are selected

and only those endpoints are available in the endpoint list


client – Client instance


duniterpy.helpers.ws2p module

duniterpy.helpers.ws2p.generate_ws2p_endpoint(bma_endpoint: str | BMAEndpoint | SecuredBMAEndpoint) WS2PEndpoint

Retrieve WS2P endpoints from BMA peering Take the first one found

duniterpy.helpers.ws2p.handshake(ws: WSConnection, signing_key: SigningKey, currency: str = 'g1')

Perform ws2p handshake on the web socket connection using the signing_key instance

  • ws – Web socket connection instance

  • signing_key – SigningKey instance

  • currency – Currency codename (default=constants.CURRENCY_CODENAME_G1)


Module contents