Skip to content

Releases: iExecBlockchainComputing/iexec-core

v9.0.0

03 Apr 07:04
b89ed60
Compare
Choose a tag to compare

New Features

  • Add WebSocketBlockchainListener to fetch latest block without polling the blockchain network. (#747)
  • Update last seen block in configuration collection when no deal has been detected in the last hour. (#750)
  • Update configuration collection depending on chain.start-block-number at startup. (#750)

Bug Fixes

  • Remove TaskResultUploadTimeout detector, covered by FinalDeadlineTaskDetector. (#732)

Quality

  • Configuration server is now optional by default. (#728)
  • Improve switch statements after Java 17 migration. (#729)
  • Remove redundant blockchain calls to diminish pressure on Ethereum JSON-RPC API. (#734)
  • Compute alive workers metrics in WorkerService#updateMetrics scheduled job. (#739 #745)
  • Fix Spring Security deprecations after Spring Boot 3.3.8 upgrade. (#740)
  • Remove code related to reopen PoCo feature in IexecHubService and TaskUpdateManager. (#743)
  • Fix several issues raised by SonarQube Cloud. (#749)

Breaking API changes

  • Remove deprecated blockhainAdapterUrl field from PublicConfiguration. (#730)
  • Remove deprecated REST endpoints in TaskController. (#731)
  • Move WorkerModel from iexec-common to iexec-core-library. (#735)
  • Move TaskAbortCause from iexec-commons-poco to iexec-core-library. (#736)
  • Remove deprecated methods in iexec-core-library. (#737)
  • Remove unused ContributionUtils class. (#738)
  • Rework metrics to expose count of computing CPUs or GPUs instead of available ones. (#739)
  • Harmonize YML internal variables to proper case. (#744)
  • Merge split URL configuration properties (protocol, host, port) to a single URL field to offer URL validation at startup. (#748)

Dependency Upgrades

  • Upgrade to eclipse-temurin:17.0.13_11-jre-focal. (#728)
  • Upgrade to Spring Cloud 2022.0.5. (#728)
  • Upgrade to Mongock 5.4.0. (#728)
  • Upgrade to Spring Doc OpenAPI 2.6.0. (#728)
  • Upgrade to Spring Boot 3.3.8. (#733)
  • Upgrade to java-ipfs-http-client 1.4.4. (#741)
  • Upgrade to iexec-commons-poco 5.0.0. (#751)
  • Upgrade to iexec-common 9.0.0. (#751)
  • Upgrade to iexec-blockchain-adapter-api-library 9.0.0. (#751)
  • Upgrade to iexec-result-proxy-library 9.0.0. (#751)
  • Upgrade to iexec-sms-library 9.0.0. (#751)

v8.6.0

23 Dec 15:20
878dba8
Compare
Choose a tag to compare

New Features

  • Push scheduler Result Proxy URL as Web2 secret to SMS. (#718)

Bug Fixes

  • Start scheduler in out-of-service mode. (#712)
  • Scheduler needs to enter out-of-service mode on first blockchain communication loss.
    This is due to Nethermind v1.14.7+99775bf7 where filters are lost on restart. (#715)
  • Use Result Proxy URL defined in deal parameters if any, fall back to scheduler default one otherwise. (#716)
  • Update off-chain task model with on-chain task consensus data in all workflows. (#720)

Quality

  • Reorder static and final keywords. (#717)
  • Update contribution and contributionAndFinalize detector tests.
    TEE tasks with callback are now eligible to contributeAndFinalize flow. (#719)
  • Resolve deprecations caused by TaskDescription in ReplicatesService and ResultService. (#723)
  • Add missing @PreDestroy annotation in services implementing Purgeable. (#724)

Dependency Upgrades

  • Upgrade to eclipse-temurin:11.0.24_8-jre-focal. (#713)
  • Upgrade to Gradle 8.10.2. (#714)
  • Upgrade to testcontainers 1.20.4. (#721)
  • Upgrade to mongo:7.0.15-jammy. (#722)
  • Upgrade to iexec-commons-poco 4.2.0. (#725)
  • Upgrade to iexec-common 8.6.0. (#725)
  • Upgrade to iexec-blockchain-adapter-api-library 8.6.0. (#725)
  • Upgrade to iexec-result-proxy-library 8.6.0. (#725)
  • Upgrade to iexec-sms-library 8.7.0. (#725)

v8.5.0

19 Jun 12:08
a3234eb
Compare
Choose a tag to compare
  • Deprecate legacy task feedback API endpoints. (#701)

New Features

  • Create iexec-task-api to access task feedback API. (#695)
  • Move notification package from iexec-commons-poco to iexec-core-library. (#697 #698)
  • Move PublicConfiguration class from iexec-common to iexec-core-library. (#699)
  • Create ConfigServerClient instance and use it. (#700)
  • Allow up to 32 task updates at a given time. (#703)
  • Index currentStatus field in task collection. (#707)
  • Replace CredentialsService with SignerService. (#708)

Bug Fixes

  • Always use WorkerpoolAuthorization to retrieve JWT and check result upload on Result Proxy. (#690)
  • Use correct Signature import in SchedulerClient. (#697)
  • Do not supply replicates past their contribution deadline to workers. (#702)
  • Query blockchain adapter every 2s instead of every second. (#706)

Quality

  • Configure Gradle JVM Test Suite Plugin. (#691)
  • Rename IexecTaskApiClient to TaskApiClient. (#696)
  • Move ReplicateTaskSummary from iexec-common to iexec-core. (#704 #705)

Dependency Upgrades

  • Upgrade to Gradle 8.7. (#692)
  • Upgrade to eclipse-temurin:11.0.22_7-jre-focal. (#693)
  • Upgrade to Spring Boot 2.7.18. (#694)
  • Upgrade to iexec-commons-poco 4.1.0. (#709)
  • Upgrade to iexec-common 8.5.0. (#709)
  • Upgrade to iexec-blockchain-adapter-api-library 8.5.0. (#709)
  • Upgrade to iexec-result-proxy-library 8.5.0. (#709)
  • Upgrade to iexec-sms-library 8.6.0. (#709)

v8.4.1

03 Apr 08:55
2935a0c
Compare
Choose a tag to compare

New Features

  • Add ConsensusReachedTaskDetector to detect missed TaskConsensus on-chain events. (#683 #684)
  • Generate enclave challenge with Authorization header after on-chain task has been initialized. (#686)

Bug Fixes

  • Keep a single updateReplicateStatus method in ReplicatesService. (#670)
  • Check result has been uploaded for TEE tasks. (#672)
  • Check for consensus early if a worker has already CONTRIBUTED when the task is updated to RUNNING. (#673)
  • Always provide a WorkerpoolAuthorization to a worker during its recovery. (#674)
  • Move task metrics from TaskUpdateManager to TaskService. (#676)
  • Fail fast when tasks are detected past their contribution or final deadline. (#677)
  • Mitigate potential race conditions by enforcing currentStatus value when updating a task. (#681)
  • Use semaphores in TaskUpdateRequestManager to avoid blocking task update threads. (#685)

Quality

  • Prepare migration to java.time package by building Date objects from Instant objects. (#671)
  • Add logs for better traceability. (#675)
  • Remove code only used in tests from TaskService and Task. (#678 #679)
  • Implement each task status transition in a single method. (#680)
  • Execute TaskUpdateManager tests on a running MongoDB container. (#682)

Dependency Upgrades

  • Upgrade to iexec-sms-library 8.5.1. (#687)

v8.4.0

29 Feb 15:09
7c93c40
Compare
Choose a tag to compare

New Features

  • Use MongoTemplate to enable document update without full rewrite. (#661)

Bug Fixes

  • Filter out CONTRIBUTE_AND_FINALIZE tasks when detecting missed REVEALED status update. (#658)
  • Fetch results on-chain when updating a replicate status in CONTRIBUTE_AND_FINALIZE workflow. (#659 #660)
  • Properly catch all runtime exceptions when an enclave challenge generation fails. (#663)

Quality

  • Use @DataMongoTest and @Testcontainers annotations in replicates, compute logs and tasks tests. (#662 #664 #665)

Dependency Upgrades

  • Upgrade to iexec-common 8.4.0. (#666)
  • Upgrade to iexec-blockchain-adapter 8.4.0. (#667)
  • Upgrade to iexec-result-proxy 8.4.0. (#667)
  • Upgrade to iexec-sms 8.5.0. (#667)

v8.3.0

11 Jan 17:06
6400aa8
Compare
Choose a tag to compare

New Features

  • Create iexec-core-library sub-project to split shared code/apis from specific scheduler application code. (#623)
  • Move first DTO classes to iexec-core-library subproject. (#626)
  • Move PlatformMetric to iexec-core-library subproject, modify it to become immutable. (#628 #629)
  • Add prometheus endpoint with custom metrics. (#632)
  • Expose version through prometheus endpoint. (#637, #639)
  • Stop fetching completed tasks count from DB. (#638)
  • Expose current task statuses count to Prometheus and /metrics endpoint. (#640, #654)
  • Add tasks endpoints to iexec-core-library. (#645)

Quality

  • Add and use a non-root user in the dockerfile. (#627)
  • Replace single thread executor with synchronized keyword. (#633)
  • Move contribution status checks from iexec-commons-poco. (#636)
  • Use BlockchainAdapterService from iexec-blockchain-adapter-api-library. (#641)
  • ResultRepositoryConfiguration and WorkerConfiguration classes are now immutable with @Value lombok annotation. (#650)

Bug Fixes

  • Fix web security depreciation warning. (#624)
  • Move TaskModel and ReplicateModel instances creation methods to Task and Replicate classes. (#625)
  • Expose TaskLogsModel on TaskController instead of TaskLogs. (#631)
  • Remove duplicated MongoDB read on ReplicatesList during replicate status update. (#647)
  • Use less MongoDB calls when updating a task to a final status. (#649)
  • Save contribution and result updload replicate data when CONTRIBUTE_AND_FINALIZE_DONE. (#651)
  • Fix potential NullPointerException during first worker replicate request. (#652)
  • Fix missed replicate status update detectors to avoid false positives by mixing CONTRIBUTE-REVEAL-FINALIZE and CONTRIBUTE_AND_FINALIZE workflows. (#653)

Dependency Upgrades

  • Upgrade to eclipse-temurin:11.0.21_9-jre-focal. (#635)
  • Upgrade to Spring Boot 2.7.17. (#634)
  • Upgrade to Spring Dependency Management Plugin 1.1.4. (#634)
  • Upgrade to Spring Doc Openapi 1.7.0. (#637)
  • Upgrade to jenkins-library 2.7.4. (#630)
  • Upgrade to iexec-commons-poco 3.2.0. (#648)
  • Upgrade to iexec-common 8.3.1. (#648)
  • Upgrade to iexec-blockchain-adapter-api-library 8.3.0. (#655)
  • Upgrade to iexec-result-proxy-library 8.3.0. (#655)
  • Upgrade to iexec-sms-library 8.4.0. (#655)

v8.2.3

14 Dec 10:33
1093c4a
Compare
Choose a tag to compare

Bug Fixes

  • Check if Worker can still accept more work right before giving it a new replicate. (#644)

v8.2.2

13 Dec 13:33
e9ab24a
Compare
Choose a tag to compare

Bug Fixes

  • Replace findAllByWalletAddress with findByWalletAddressIn in WorkerRepository. (#643)

v8.2.1

13 Dec 08:52
604b9ca
Compare
Choose a tag to compare

Bug Fixes

  • Do not write lastAliveDate or lastReplicateDemandDate to MongoDB to decrease load on the database. (#642)

v8.2.0

29 Sep 16:31
417ccab
Compare
Choose a tag to compare

New Features

  • Add blockchain connection health indicator. (#601)
  • Block some connections and messages when blockchain connection is down. (#604)
  • Block deal watching mechanisms when communication with the blockchain node is lost. (#606)
  • Use isEligibleToContributeAndFinalize method from TaskDescription. (#619)

Bug Fixes

  • Clean call to iexecHubService#getTaskDescriptionFromChain in test. (#597)
  • Reject deal if TEE tag but trust not in {0,1}. (#598)
  • Fix and harmonize Dockerfile entrypoint in all Spring Boot applications. (#614)
  • Use mongo:4.4 in tests with MongoDBContainer. Replace getContainerIpAddress with getHost. (#616)

Quality

  • Remove nexus.intra.iex.ec repository. (#605)
  • Remove Graylog support. Fetch logs with a sidecar to push them to your log infrastructure. (#607)
  • Events are now immutable with @Value lombok annotation. (#608)
  • Fix several code smells. (#609)
  • Upgrade to Gradle 8.2.1 with up-to-date plugins. (#612)
  • Remove VersionService#isSnapshot. (#618)

Dependency Upgrades

  • Remove logstash-gelf dependency. (#607)
  • Upgrade to eclipse-temurin 11.0.20. (#610)
  • Upgrade to Spring Boot 2.7.14. (#611)
  • Upgrade to Spring Dependency Management Plugin 1.1.3. (#611)
  • Upgrade to testcontainers 1.19.0. (#613)
  • Upgrade to jenkins-library 2.7.3. (#615)
  • Upgrade to iexec-commons-poco 3.1.0. (#617)
  • Upgrade to iexec-common 8.3.0. (#617)
  • Upgrade to iexec-blockchain-adapter-api-library 8.2.0. (#620)
  • Upgrade to iexec-result-proxy-library 8.2.0. (#620)
  • Upgrade to iexec-sms-library 8.3.0. (#620)