Skip to content

jo-al-ra/iexec-core

 
 

Repository files navigation

iExec Core Scheduler

Overview

An iExec workerpool is orchestrated by an iExec Core Scheduler. The iExec Core Scheduler watches on-chain deals and schedules off-chain computation among available workers.

Configuration

The iExec Core Scheduler is available as an OCI image on Docker Hub.

To run properly, the iExec Core Scheduler requires:

  • A blockchain node. iExec smart contracts must be deployed on the blockchain network.
  • An Ethereum wallet to interact with smart contracts on the blockchain network. To perform on-chain transactions, the wallet must be loaded with at least 0.1 ETH and some RLC.
  • A MongoDB instance to persist its data.
  • An iExec Blockchain Adapter for several blockchain network interactions.
  • An iExec Result Proxy to check if tasks results have been published.
  • An iExec Secret Management Service (iExec SMS) for secret and enclave sessions management of TEE tasks.

You can configure the iExec Core Scheduler with the following properties:

Environment variable Description Type Default value
IEXEC_CORE_PORT Server port of the iExec Core Scheduler. Positive integer 13000
MONGO_HOST MongoDB server host. Cannot be set with URI. String localhost
MONGO_PORT MongoDB server port. Cannot be set with URI. Positive integer 13002
REVEAL_TIMEOUT_PERIOD Detector period to track reveal timeouts for tasks. Positive integer 120000
IEXEC_ASK_REPLICATE_PERIOD Worker configuration, interval in milliseconds between 2 replicate requests. Positive integer 5000
IEXEC_CORE_REQUIRED_WORKER_VERSION Empty value will allow any worker version. String
IEXEC_WORKERS_WHITELIST List of worker addresses allowed to connect to the iExec Core Scheduler. String
IEXEC_CORE_WALLET_PATH Path to the wallet of the server. String ./src/main/resources/wallet/encrypted-wallet_scheduler.json
IEXEC_CORE_WALLET_PASSWORD Password to unlock the wallet of the server. String whatever
IEXEC_CHAIN_ID Chain ID of the blockchain network to connect. Positive integer 17
IEXEC_IS_SIDECHAIN Define if iExec on-chain protocol is built on top of token (false) or native currency (true). Boolean false
IEXEC_PRIVATE_CHAIN_ADDRESS Private URL to connect to the blockchain node. URL http://localhost:8545
IEXEC_PUBLIC_CHAIN_ADDRESS [unused] Public URL to connect to the blockchain node. URL http://localhost:8545
IEXEC_HUB_ADDRESS Proxy contract address to interact with the iExec on-chain protocol. String 0xBF6B2B07e47326B7c8bfCb4A5460bef9f0Fd2002
POOL_ADDRESS On-chain address of the workerpool managed by the current iExec Core Scheduler. String 0x365E7BABAa85eC61Dffe5b520763062e6C29dA27
IEXEC_START_BLOCK_NUMBER Subscribe to new deal events from a specific block number. Positive integer 0
IEXEC_GAS_PRICE_MULTIPLIER Transactions will be sent with networkGasPrice * gasPriceMultiplier. Float 1.0
IEXEC_GAS_PRICE_CAP In Wei, will be used for transactions if networkGasPrice * gasPriceMultiplier > gasPriceCap Integer 22000000000
IEXEC_CORE_CHAIN_ADAPTER_PROTOCOL iExec Blockchain Adapter communication protocol. String http
IEXEC_CORE_CHAIN_ADAPTER_HOST iExec Blockchain Adapter server host. String blockchain-adapter
IEXEC_CORE_CHAIN_ADAPTER_PORT iExec Blockchain Adapter server port. Positive integer 13010
IEXEC_CORE_CHAIN_ADAPTER_USERNAME Username to connect to the iExec Blockchain Adapter server. String admin
IEXEC_CORE_CHAIN_ADAPTER_PASSWORD Password to connect to the iExec Blockchain Adapter server. String whatever
IEXEC_RESULT_REPOSITORY_PROTOCOL iExec Result Proxy server communication protocol. String http
IEXEC_RESULT_REPOSITORY_HOST iExec Result Proxy server host. String localhost
IEXEC_RESULT_REPOSITORY_PORT iExec Result Proxy server port. Positive integer 13200
IEXEC_IPFS_HOST [unused] IPFS node host. String 127.0.0.1
IEXEC_IPFS_PORT [unused] IPFS node port. Positive integer 5001
IEXEC_SMS_PROTOCOL iExec SMS server communication protocol. String http
IEXEC_SMS_HOST iExec SMS server host. String localhost
IEXEC_SMS_PORT iExec SMS server port. Positive integer 13300
IEXEC_CORE_MANAGEMENT_PORT Management endpoint HTTP port (uses the same port as the application by default). Configure a different port to use management-specific SSL. Positive integer 13001
IEXEC_CORE_MANAGEMENT_ACTUATORS Endpoint IDs that should be included or * for all. String health, info
IEXEC_CORE_GRAYLOG_HOST Graylog server host. String localhost
IEXEC_CORE_GRAYLOG_PORT Graylog server port. Positive integer 12201
IEXEC_LOGS_PURGE_RATE_IN_DAYS Interval in days between 2 executions of the purge mechanism. Positive integer 1
IEXEC_LOGS_AVAILABILITY_PERIOD_IN_DAYS Number of days to keep logs of past tasks. Positive integer 3

A more exhaustive documentation is available on the official documentation of iExec.

Build from sources

./gradlew build

About

iExec Core Scheduler

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%