Skip to content

pdxwebdev/yadacoin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yadacoin

Build and Release

Setup

Ubuntu 22 install command:

sudo wget -O - https://raw.githubusercontent.com/pdxwebdev/yadacoin/master/yadanodesetup.sh | sudo bash

Windows installer:

https://yadacoin.io/download

Configuration

  • modes
    • type: array
    • default: ["node", "web", "pool"]
    • description: This setting defines all the modules to initialize when running the node. Node - will initialize all of the networking for exchanging blocks, syncing, transactions, etc. Web - will enable the http interface which can be used in your browser including the pool information and wallet app pages.
  • root_app
    • type: string
    • default: "yadacoinpool"
    • description: If multiple http apps are loaded, this setting tells the node which app owns the root / path in the case of a conflict.
  • seed
    • type: string
    • default: auto-generated
    • description: This is an auto-generated set of words representing your private key.
  • xprv
    • type: string
    • default: auto-generated
    • description: Extended private key. This allows a heirarchy of keys to be created. Useful for exchanges with many child wallets.
  • public_key
    • type: string
    • default: auto-generated
    • description: Public key for the corresponding private key.
  • address
    • type: string
    • default: auto-generated
    • description: Bitcoin-style address for the corresponding public key
  • private_key
    • type: string
    • default: auto-generated
    • description: Private key for the corresponding public key.
  • wif
    • type: string
    • default: auto-generated
    • description: Bitcoin-style Wallet Import Format string for the corresponding private key.
  • username_signature
    • type: string
    • default: auto-generated
    • description: The signature generated when this wallet signs the username field.
  • mongodb_host
    • type: string
    • default: localhost
    • description: The server where the mongo db is located.
  • mongodb_username
    • type: string
    • default: undefined
    • description: The username to authenticate against mongodb.
  • mongodb_password
    • type: string
    • default: undefined
    • description: The password to authenticate against mongodb.
  • api_whitelist
    • type: array
    • default: []
    • description: An array of IP addresses that are allowed to access your node. ie. ["ip.address.goes.here"]
  • username
    • type: string
    • default: ""
    • description: This is the username other users on the network will see when interacting with you on the network.
  • network
    • type: string
    • default: mainnet
    • description: Tell the node which network to use. Possible values are mainnet, testnet, regnet.
  • database
    • type: string
    • default: yadacoin
    • description: The name of the mongodb database where all collections/yadacoin data will be stored.
  • site_database
    • type: string
    • default: yadacoin_site
    • description: The name of the mongodb database where all third-party app data will be stored.
  • peer_host
    • type: string
    • default: auto-generated
    • description: The IP address used by the network to access your node.
  • peer_port
    • type: string
    • default: 8000
    • description: The port used by the network to access your node
  • peer_type
    • type: string
    • default: user
    • description: The node type that determines when this node will place itself in the network topology. Possible values are user, service_provider, seed_gateway, and seed. If you would like to be a seed node, then you'll need to also run service_provider and seed_gateway nodes for your seed node. You'll also need to submit a pull request, requesting your servers be added to the network.
  • serve_host
    • type: string
    • default: 0.0.0.0
    • description: The IP address bound by the node when initializing the server.
  • serve_port
    • type: string
    • default: 8000
    • description: The port bound by the node when initializing the server.
  • ssl
    • type: object
    • default: undefined
    • description: Specify the SSL information to enable https on your web server.
    • nested properties:
      • cafile
        • type: string
        • default: undefined
        • description: The absolute file path to your CA file.
      • certfile
        • type: string
        • default: undefined
        • description: The absolute file path to your Cetfificate file.
      • keyfile
        • type: string
        • default: undefined
        • description: The absolute file path to your Key file.
      • common_name
        • type: string
        • default: undefined
        • description: The common name used in your certificate.
      • port
        • type: integer
        • default: undefined
        • description: The port you wish to use for your SSL connections.
  • origin
    • type: string
    • default: ""
    • description: Depricated
  • fcm_key
    • type: string
    • default: undefined
    • description: Depricated
  • sia_api_key
    • type: string
    • default: undefined
    • description: Depricated
  • jwt_public_key
    • type: string
    • default: auto-generated
    • description: This value is generated to perform JWT auth for yadacoin apps.
  • callbackurl
    • type: string
    • default: undefined
    • description: Depricated
  • wallet_host_port
    • type: string
    • default: "http://localhost:8001"
    • description: The url used to contact the node from the wallet user interface. You may want to change this is you would like to access your wallet remotely.
  • credits_per_share
    • type: decimal
    • default: 5
    • description: Specifies the number of credits a user earch for every share they submit to your pool.
  • shares_required
    • type: bool
    • default: false
    • description: Specifies if shares are required to use an app on your node.
  • pool_payout
    • type: bool
    • default: false
    • description: Specifies if your pool will payout to the addresses submitting shares. If false, the pool will keep all won coins in it's own wallet.
  • pool_take
    • type: decimal
    • default: .01
    • description: Specifies the percentage of coins that are awarded to the pool for each block.
  • pool_public_key
    • type: string
    • default: undefined
    • description: This allows you to specify a pool public key other than the current node in the case where you want to provide stats on the web and run the pool on a separate server.
  • stratum_pool_port
    • type: integer
    • default: 3333
    • description: The port where your pool can be accessed by mining rigs.
  • payout_frequency
    • type: integer
    • default: 6
    • description: This specifies the number of blocks that must by won by the pool before a payout can take place.
  • max_miners
    • type: integer
    • default: 100
    • description: This specifies the number of miners for your pool.
  • max_peers
    • type: integer
    • default: 20
    • description: This specifies the number of peers that can connect to your node.
  • pool_diff
    • type: integer
    • default: 100000
    • description: This specifies the difficulty for pool shares in both xmrig versions 2/3
  • email
    • type: object
    • default: undefined
    • description: Specify the email server you wish to use for notifications, communication, etc.
      • smtp_server
        • type: string
        • default: undefined
        • description: The hostname or IP address of your smtp server.
      • smtp_port
        • type: number
        • default: undefined
        • description: The port of your smtp server.
      • username
        • type: string
        • default: undefined
        • description: The username of your email account.
      • password
        • type: string
        • default: undefined
        • description: The password of your email account.
  • skynet_url
    • type: string
    • default: ''
    • description: Specify the url of your skynet server.
  • skynet_api_key
    • type: string
    • default: ''
    • description: Specify the api password for your skynet server.
  • web_jwt_expiry
    • type: string
    • default: 23040
    • description: Specify the validity period for a json web token in seconds.
  • websocket_host_port
    • type: string
    • default: 'ws://localhost:8000/websocket'
    • description: Specify the host and port of your websocket.
  • tcp_traffic_debug
    • type: bool
    • default: undefined
    • description: Specify if you want all tcp traffic in debug logging.
  • debug_memory
    • type: bool
    • default: undefined
    • description: Specify if you want a complete breakdown of memory usage by object type in status output.
  • websocket_traffic_debug
    • type: bool
    • default: undefined
    • description: Specify if you want all websocket traffic in debug logging.
  • mongo_debug
    • type: bool
    • default: undefined
    • description: Specify if you want all Mongo DB queries to be logged and profiled.
  • peers_wait
    • type: integer
    • default: 3
    • description: Specify the number of seconds to wait before attempting to reconnect to peers.
  • status_wait
    • type: integer
    • default: 10
    • description: Specify the number of seconds to wait before printing status message to terminal.
  • queue_processor_wait
    • type: integer
    • default: 10
    • description: Specify the number of seconds to wait before checking for new transactions to process.
  • block_checker_wait
    • type: integer
    • default: 1
    • description: Specify the number of seconds to wait before checking the for block height changes and updating peers.
  • message_sender_wait
    • type: integer
    • default: 10
    • description: Specify the number of seconds to wait before retrying messages for transactions, blocks, etc.
  • pool_payer_wait
    • type: integer
    • default: 120
    • description: Specify the number of seconds to wait before running the pool payout process.
  • cache_validator_wait
    • type: integer
    • default: 30
    • description: Specify the number of seconds to wait before running the cache validator process.
  • mempool_cleaner_wait
    • type: integer
    • default: 1200
    • description: Specify the number of seconds to wait before clearing the mempool of old and invalid transactions.
  • nonce_processor_wait
    • type: integer
    • default: 1
    • description: Specify the number of seconds to wait before checking for new share submissions to process.
  • mongo_query_timeout
    • type: integer
    • default: 30000
    • description: Specify the max number of milliseconds of execution time for all mongo queries.
  • http_request_timeout
    • type: integer
    • default: 3000
    • description: Specify the max number of milliseconds of execution time for all http requests.
  • log_health_status
    • type: bool
    • default: undefined
    • description: Specify if you want all Mongo DB queries to be logged and profiled.
  • docker_debug
    • type: bool
    • default: undefined
    • description: Specify if you want to log resources used by docker.
  • asyncio_debug
    • type: bool
    • default: undefined
    • description: Specify if you want to log slow running asyncio tasks.
  • asyncio_debug_duration
    • type: bool
    • default: undefined
    • description: Specify duration of what is considered a "slow" task in asyncio.
  • combined_address
    • type: string
    • default: your node's wallet address
    • description: Specify a wallet address to combine transactions. This can be useful when running multiple nodes and consolidating their transactions into a central wallet.
  • activate_peerjs
    • type: bool
    • default: undefined
    • description: If your node is not a service provide node, which have this enabled by default, you can use this setting to activate peerjs p2p connection broker endpoints and user interface.
  • masternode_fee_minimum
    • type: integer
    • default: 1
    • description: If your node is a service provider or you have activate_peerjs set to true, then you may set your minimum required amount of YDA to broker p2p connections.

Development Environment

We use Black, Autoflake, isort, and commit message enforcement as pre-commit hooks. To install the hooks, run the following commands:

pip install pre-commit mongomock black autoflake isort pytest
pre-commit install
pre-commit install --hook-type pre-push
pre-commit install -t commit-msg
pre-commit autoupdate