Skip to content

jo-al-ra/iexec-core

This branch is 10 commits ahead of, 678 commits behind iExecBlockchainComputing/iexec-core:main.

Folders and files

NameName
Last commit message
Last commit date
Nov 12, 2021
Jan 18, 2023
Feb 18, 2022
Dec 20, 2022
Aug 27, 2020
May 31, 2022
Dec 8, 2022
Jan 3, 2020
Dec 6, 2022
Dec 16, 2022
Dec 19, 2022
Nov 12, 2021
Nov 12, 2021
Sep 24, 2018

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%