Skip to content

Commit e87fb77

Browse files
authored
Merge pull request #525 from iExecBlockchainComputing/release/8.1.0
Release/8.1.0
2 parents d6ecbfc + 7093e8d commit e87fb77

File tree

67 files changed

+1464
-769
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+1464
-769
lines changed

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,28 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [[8.1.0]](https://github.com/iExecBlockchainComputing/iexec-worker/releases/tag/v8.1.0) 2023-06-12
6+
7+
### New Features
8+
- Enable Prometheus actuator. (#512)
9+
- Add `contributeAndFinalize` support for TEE tasks when required `trust` is `1`. (#516 #517 #518)
10+
- Add purge cached task descriptions ability. (#521)
11+
- Add `chainReceipt` to ContributeAndFinalize replicate status details. (#522)
12+
- Use DatasetAddress as dataset filename. (#523)
13+
### Bug Fixes
14+
- Filter `contribute` and `reveal` event logs on `chainTaskId` and `workerAddress`. (#516)
15+
### Quality
16+
- Refactor STOMP client service to simplify its implementation. (#492)
17+
- Add `error` log events. (#514)
18+
- Improve `IexecHubService` coverage. (#526)
19+
### Dependency Upgrades
20+
- Add new `iexec-commons-containers` 1.0.2 dependency. (#513 #515)
21+
- Upgrade to `iexec-common` 8.2.0. (#515 #518 #520 #524)
22+
- Add new `iexec-commons-poco` 3.0.2 dependency. (#515 #518 #520 #521 #524)
23+
- Upgrade to `iexec-blockchain-adapter-api-library` 8.1.0. (#524)
24+
- Upgrade to `iexec-result-proxy-library` 8.1.0. (#524)
25+
- Upgrade to `iexec-sms-library` 8.1.0. (#524)
26+
527
## [[8.0.0]](https://github.com/iExecBlockchainComputing/iexec-worker/releases/tag/v8.0.0) 2023-03-08
628

729
### New Features

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,7 @@ No default strategy has been implemented in the [Dockerfile](Dockerfile) at the
6464
```
6565
./gradlew build --refresh-dependencies
6666
```
67+
68+
## License
69+
70+
This repository code is released under the [Apache License 2.0](LICENSE).

build.gradle

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,9 @@ dependencyManagement {
5858

5959
dependencies {
6060
// iexec
61+
implementation "com.iexec.commons:iexec-commons-poco:$iexecCommonsPocoVersion"
6162
implementation "com.iexec.common:iexec-common:$iexecCommonVersion"
63+
implementation "com.iexec.commons:iexec-commons-containers:$iexecCommonsContainersVersion"
6264
implementation "com.iexec.blockchain:iexec-blockchain-adapter-api-library:$iexecBlockchainAdapterVersion"
6365
implementation "com.iexec.result-proxy:iexec-result-proxy-library:$iexecResultVersion"
6466
implementation "com.iexec.sms:iexec-sms-library:$iexecSmsVersion"
@@ -71,9 +73,9 @@ dependencies {
7173
implementation 'org.springframework.boot:spring-boot-starter-validation'
7274
implementation "org.springframework.boot:spring-boot-starter-web"
7375
implementation "org.springframework.boot:spring-boot-starter-websocket"
74-
implementation "org.springframework.cloud:spring-cloud-starter"
75-
implementation "org.springframework.cloud:spring-cloud-starter-openfeign"
76-
implementation "org.springframework.retry:spring-retry"
76+
implementation "org.springframework.cloud:spring-cloud-starter"
77+
implementation "org.springframework.cloud:spring-cloud-starter-openfeign"
78+
implementation "org.springframework.retry:spring-retry"
7779
testImplementation "org.springframework.boot:spring-boot-starter-test"
7880
testImplementation "org.mockito:mockito-inline:4.8.0" // activates mocking final classes/methods
7981

@@ -99,14 +101,17 @@ dependencies {
99101
//graylog
100102
implementation 'biz.paluch.logging:logstash-gelf:1.5.1'
101103

104+
// observability
105+
runtimeOnly 'io.micrometer:micrometer-registry-prometheus'
106+
102107
// docker
103108
implementation "com.github.docker-java:docker-java:${dockerJavaVersion}"
104109

105110
// expiring map
106111
implementation 'net.jodah:expiringmap:0.5.10'
107112

108113
// awaitility
109-
testImplementation "org.awaitility:awaitility:4.2.0"
114+
testImplementation "org.awaitility:awaitility"
110115
}
111116

112117
java {

gradle.properties

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
version=8.0.0
2-
iexecCommonVersion=7.0.0
3-
iexecBlockchainAdapterVersion=8.0.0
4-
iexecResultVersion=8.0.0
5-
iexecSmsVersion=8.0.0
1+
version=8.1.0
2+
iexecCommonVersion=8.2.0
3+
iexecCommonsContainersVersion=1.0.2
4+
iexecCommonsPocoVersion=3.0.2
5+
iexecBlockchainAdapterVersion=8.1.0
6+
iexecResultVersion=8.1.0
7+
iexecSmsVersion=8.1.0
68

79
nexusUser
810
nexusPassword

src/main/java/com/iexec/worker/chain/ContributionService.java

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2020 IEXEC BLOCKCHAIN TECH
2+
* Copyright 2020-2023 IEXEC BLOCKCHAIN TECH
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,16 +16,17 @@
1616

1717
package com.iexec.worker.chain;
1818

19-
import com.iexec.common.chain.*;
20-
import com.iexec.common.contract.generated.IexecHubContract;
2119
import com.iexec.common.contribution.Contribution;
2220
import com.iexec.common.replicate.ReplicateStatusCause;
2321
import com.iexec.common.result.ComputedFile;
24-
import com.iexec.common.utils.BytesUtils;
2522
import com.iexec.common.worker.result.ResultUtils;
23+
import com.iexec.commons.poco.chain.*;
24+
import com.iexec.commons.poco.contract.generated.IexecHubContract;
25+
import com.iexec.commons.poco.utils.BytesUtils;
2626
import lombok.extern.slf4j.Slf4j;
2727
import org.springframework.stereotype.Service;
2828

29+
import java.math.BigInteger;
2930
import java.util.Date;
3031
import java.util.Optional;
3132

@@ -86,6 +87,28 @@ public Optional<ReplicateStatusCause> getCannotContributeStatusCause(String chai
8687
return Optional.empty();
8788
}
8889

90+
// TODO: trust could become part of TaskDescription to avoid fetching deal on-chain
91+
public Optional<ReplicateStatusCause> getCannotContributeAndFinalizeStatusCause(String chainTaskId) {
92+
Optional<ChainTask> optionalChainTask = iexecHubService.getChainTask(chainTaskId);
93+
if (optionalChainTask.isEmpty()) {
94+
return Optional.of(CHAIN_UNREACHABLE);
95+
}
96+
ChainTask chainTask = optionalChainTask.get();
97+
98+
// check TRUST is 1
99+
Optional<ChainDeal> oChainDeal = iexecHubService.getChainDeal(chainTask.getDealid());
100+
if (oChainDeal.isEmpty() || !BigInteger.ONE.equals(oChainDeal.get().getTrust())) {
101+
return Optional.of(TRUST_NOT_1);
102+
}
103+
104+
// check TASK_ALREADY_CONTRIBUTED
105+
if (!chainTask.getContributors().isEmpty()) {
106+
return Optional.of(TASK_ALREADY_CONTRIBUTED);
107+
}
108+
109+
return Optional.empty();
110+
}
111+
89112
private boolean isWorkerpoolAuthorizationPresent(String chainTaskId) {
90113
WorkerpoolAuthorization workerpoolAuthorization =
91114
workerpoolAuthorizationService.getWorkerpoolAuthorization(chainTaskId);
@@ -118,7 +141,7 @@ private boolean isContributionUnsetToContribute(ChainTask chainTask) {
118141
if (optionalContribution.isEmpty()) return false;
119142

120143
ChainContribution chainContribution = optionalContribution.get();
121-
return chainContribution.getStatus().equals(ChainContributionStatus.UNSET);
144+
return chainContribution.getStatus() == ChainContributionStatus.UNSET;
122145
}
123146

124147
public boolean isContributionDeadlineReached(String chainTaskId) {

src/main/java/com/iexec/worker/chain/EnclaveAuthorizationService.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2020 IEXEC BLOCKCHAIN TECH
2+
* Copyright 2020-2023 IEXEC BLOCKCHAIN TECH
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,15 +16,15 @@
1616

1717
package com.iexec.worker.chain;
1818

19-
import com.iexec.common.security.Signature;
20-
import com.iexec.common.tee.TeeEnclaveChallengeSignature;
21-
import com.iexec.common.utils.BytesUtils;
2219
import com.iexec.common.utils.EthAddress;
23-
import com.iexec.common.utils.SignatureUtils;
20+
import com.iexec.commons.poco.security.Signature;
21+
import com.iexec.commons.poco.tee.TeeEnclaveChallengeSignature;
22+
import com.iexec.commons.poco.utils.BytesUtils;
23+
import com.iexec.commons.poco.utils.SignatureUtils;
2424
import lombok.extern.slf4j.Slf4j;
2525
import org.springframework.stereotype.Service;
2626

27-
import static com.iexec.common.utils.SignatureUtils.isExpectedSignerOnSignedMessageHash;
27+
import static com.iexec.commons.poco.utils.SignatureUtils.isExpectedSignerOnSignedMessageHash;
2828

2929

3030
@Slf4j

0 commit comments

Comments
 (0)