Skip to content

Examples

This page provides detailed examples of how to use the p2pool API. Each example demonstrates a specific functionality.

Examples List

  1. Add P2Pool
  2. Update All Endpoints
  3. Update Individual Endpoints
  4. Access Properties
  5. Full Example

Add P2Pool

This example demonstrates how to initialize the P2PoolAPI object.

add_p2pool.py
1
2
3
4
5
6
7
from env import log
from p2pool import P2PoolAPI

api_path = "api/"               # Can also be a URL: api_path = "http://example.com/api/"
log.info(f"Initializing P2PoolAPI with path: {api_path}")
x = P2PoolAPI(api_path)         # If using a URL: x = P2PoolAPI(api_path, is_remote=True)
log.info("P2PoolAPI initialized.")

Update All Endpoints

This example demonstrates how to update all endpoints.

update_all_endpoints.py
1
2
3
4
5
6
7
8
9
from env import log, api_path
from p2pool import P2PoolAPI

log.info(f"Initializing P2PoolAPI with path: {api_path}")
x = P2PoolAPI(api_path)
log.info("P2PoolAPI initialized.")
log.info("Updating all endpoints.")
x.update_all_endpoints()
log.info("All endpoints updated.")

Update Individual Endpoints

This example demonstrates how to update individual endpoints.

update_individual_endpoints.py
from env import log, api_path
from p2pool import P2PoolAPI

log.info(f"Initializing P2PoolAPI with path: {api_path}")
x = P2PoolAPI(api_path)
log.info("P2PoolAPI initialized.")
log.info("Updating all individual endpoints.")
x.update_local_console()
x.update_local_p2p()
x.update_local_stratum()
x.update_network_stats()
x.update_pool_blocks()
x.update_pool_stats()
x.update_stats_mod()
log.info("All individual endpoints updated.")

Access Properties

This example demonstrates how to access properties.

access_properties.py
from env import log, api_path
from p2pool import P2PoolAPI

log.info(f"Initializing P2PoolAPI with path: {api_path}")
x = P2PoolAPI(api_path)
log.info("P2PoolAPI initialized.")
log.info("Full JSON response examples:")
log.info(f"`local/console` endpoint: {x.local_console}")
log.info(f"`local/p2p` endpoint: {x.local_p2p}")
log.info(f"`local/stratum` endpoint: {x.local_stratum}")
log.info("Individual data examples:")
log.info(f"`uptime` from `local/p2p` endpoint: {x.local_p2p_uptime}")
log.info(f"`heights` from `pool/blocks` endpoint: {x.pool_blocks_heights}")
log.info(f"`ports` from `stats/mod` endpoint: {x.stats_mod_ports}")

Full Example

This example demonstrates a full example.

full_example.py
from env import log, api_path
from p2pool import P2PoolAPI

log.info(f"Initializing P2PoolAPI with path: {api_path}")
x = P2PoolAPI(api_path)
log.info("P2PoolAPI initialized.")
log.info("Updating all individual endpoints.")
x.update_local_console()
x.update_local_p2p()
x.update_local_stratum()
x.update_network_stats()
x.update_pool_blocks()
x.update_pool_stats()
x.update_stats_mod()
log.info("All individual endpoints updated.")
log.info("Updating all endpoints.")
x.update_all_endpoints()
log.info("All endpoints updated.")
log.info("Full JSON response examples:")
log.info(f"`local/console` endpoint: {x.local_console}")
log.info(f"`local/p2p` endpoint: {x.local_p2p}")
log.info(f"`local/stratum` endpoint: {x.local_stratum}")
log.info("Individual data examples:")
log.info(f"`uptime` from `local/p2p` endpoint: {x.local_p2p_uptime}")
log.info(f"`heights` from `pool/blocks` endpoint: {x.pool_blocks_heights}")
log.info(f"`ports` from `stats/mod` endpoint: {x.stats_mod_ports}")