Skip to content

Commit ff6ce5c

Browse files
authored
Merge pull request #128 from iExecBlockchainComputing/release/8.3.0
Release/8.3.0
2 parents 7441c82 + 5cedbf6 commit ff6ce5c

Some content is hidden

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

46 files changed

+915
-1116
lines changed

CHANGELOG.md

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,56 @@
22

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

5+
## [[8.3.0]](https://github.com/iExecBlockchainComputing/iexec-blockchain-adapter-api/releases/tag/v8.3.0) 2024-01-10
6+
7+
### New Features
8+
9+
- Send up to 2 blockchain transactions per block.
10+
With a big enough latency, the nonce is properly computed in web3j library against the pending block. (#111)
11+
- Add `BlockchainAdapterService` class to implement interactions with REST API. (#117 #118 #119 126)
12+
- Expose version through prometheus endpoint and through VersionController. (#122 #123)
13+
14+
### Bug Fixes
15+
16+
- Remove `contribute` and `reveal` endpoints. (#110)
17+
- Fix web security depreciation warning. (#112)
18+
19+
### Quality
20+
21+
- Add and use a non-root user in the dockerfile. (#113)
22+
- Reindent `build.gradle` file. (#114)
23+
- Standardisation of the dockerfile and its location in regard to other java components. (#115)
24+
- Rename `Status` to `CommandStatus` in library. (#117)
25+
- Remove `com.iexec.blockchain.command.task.contribute` package. (#124)
26+
- Remove `com.iexec.blockchain.command.task.reveal` package. (#125)
27+
28+
### Dependency Upgrades
29+
30+
- Upgrade to `eclipse-temurin:11.0.21_9-jre-focal`. (#121)
31+
- Upgrade to Spring Boot 2.7.17. (#120)
32+
- Upgrade to Spring Dependency Management Plugin 1.1.4. (#120)
33+
- Upgrade to Spring Doc OpenAPI 1.7.0. (#122)
34+
- Upgrade to `jenkins-library` 2.7.4. (#116)
35+
- Upgrade to `iexec-commons-poco` 3.2.0. (#127)
36+
- Upgrade to `iexec-common` 8.3.1. (#127)
37+
538
## [[8.2.0]](https://github.com/iExecBlockchainComputing/iexec-blockchain-adapter-api/releases/tag/v8.2.0) 2023-09-28
639

740
### Bug Fixes
41+
842
- Fix and harmonize `Dockerfile entrypoint` in all Spring Boot applications. (#102)
43+
944
### Quality
45+
1046
- Remove `nexus.intra.iex.ec` repository. (#96)
1147
- Upgrade to Gradle 8.2.1 with up-to-date plugins. (#100)
1248
- Clean TODOs. (#104)
13-
- `ChainConfig` instance is immutable and validated. Application will fail to start if chain config parameters violate constraints. (#105)
49+
- `ChainConfig` instance is immutable and validated. Application will fail to start if chain config parameters violate
50+
constraints. (#105)
1451
- Remove `SignerService` class only used in integration tests. (#107)
52+
1553
### Dependency Upgrades
54+
1655
- Upgrade to `eclipse-temurin` 11.0.20. (#98)
1756
- Upgrade to Spring Boot 2.7.14. (#99)
1857
- Upgrade to Spring Dependency Management Plugin 1.1.3. (#99)
@@ -24,41 +63,55 @@ All notable changes to this project will be documented in this file.
2463
## [[8.1.1]](https://github.com/iExecBlockchainComputing/iexec-blockchain-adapter-api/releases/tag/v8.1.1) 2023-06-23
2564

2665
### Dependency Upgrades
66+
2767
- Upgrade to `iexec-common` 8.2.1. (#94)
2868
- Upgrade to `iexec-commons-poco` 3.0.4. (#94)
2969

3070
## [[8.1.0]](https://github.com/iExecBlockchainComputing/iexec-blockchain-adapter-api/releases/tag/v8.1.0) 2023-06-07
3171

3272
### New Features
73+
3374
- Enable Prometheus actuator. (#79)
3475
- Rework `QueueService` with a thread pool based on a `PriorityBlockingQueue`. (#84)
3576
- Do not use `broker` to match orders on chain. (#87 #88)
77+
3678
### Bug Fixes
79+
3780
- Fix security rule to access Swagger API. (#79)
81+
3882
### Quality
83+
3984
- Use `testcontainers` in integration tests. (#89)
4085
- Remove `com.iexec.blockchain.dataset` package and update `feign` client endpoints. (#91)
86+
4187
### Dependency Upgrades
88+
4289
- Upgrade to `feign` 11.10. (#80)
4390
- Upgrade to `iexec-common` 8.2.0. (#83 #85 #90)
4491
- Upgrade to `iexec-commons-poco` 3.0.2. (#83 #85 #86 #90)
4592

4693
## [[8.0.1]](https://github.com/iExecBlockchainComputing/iexec-blockchain-adapter-api/releases/tag/v8.0.1) 2023-04-06
4794

4895
### Quality
96+
4997
* Run integration tests on `[email protected]`. (#81)
5098
* Connect by default to iExec Bellecour blockchain. (#81)
5199

52100
## [[8.0.0]](https://github.com/iExecBlockchainComputing/iexec-blockchain-adapter-api/releases/tag/v8.0.0) 2023-03-03
53101

54102
### New Features
103+
55104
* Expose a `BrokerClient` in library.
56105
* Add iExec banner at startup.
57106
* Show application version on banner.
107+
58108
### Quality
109+
59110
* Improve code quality.
60111
* Use new TEE classes in tests.
112+
61113
### Dependency Upgrades
114+
62115
* Replace the deprecated `openjdk` Docker base image with `eclipse-temurin` and upgrade to Java 11.0.18 patch.
63116
* Upgrade to Spring Boot 2.6.14.
64117
* Upgrade to Gradle 7.6.
@@ -83,7 +136,7 @@ All notable changes to this project will be documented in this file.
83136

84137
* Hotfix integration tests.
85138

86-
## [[7.1.0]](https://github.com/iExecBlockchainComputing/iexec-blockchain-adapter-api/releases/tag/v7.1.0) 2022-07-01
139+
## [[7.1.0]](https://github.com/iExecBlockchainComputing/iexec-blockchain-adapter-api/releases/tag/v7.1.0) 2022-07-01
87140

88141
* Add OpenFeign client library in dedicated iexec-blockchain-adapter-api-library jar.
89142
* Use Spring Boot 2.6.2.

Dockerfile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Build app container
2+
FROM eclipse-temurin:11.0.21_9-jre-focal
3+
4+
ARG jar
5+
6+
RUN test -n "$jar"
7+
8+
RUN apt-get update \
9+
&& apt-get install -y --no-install-recommends curl \
10+
&& rm -rf /var/lib/apt/lists/*
11+
12+
RUN groupadd --system appuser \
13+
&& useradd -g appuser -s /sbin/nologin -c "Docker image user" appuser
14+
15+
WORKDIR /app
16+
COPY $jar iexec-blockchain-adapter-api.jar
17+
RUN chown -R appuser:appuser /app
18+
19+
USER appuser
20+
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "iexec-blockchain-adapter-api.jar" ]

Jenkinsfile

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
@Library('[email protected].3') _
1+
@Library('[email protected].4') _
22
buildJavaProject(
3-
buildInfo: getBuildInfo(),
43
integrationTestsEnvVars: ['BROKER_PRIVATE_KEY'],
54
shouldPublishJars: true,
6-
shouldPublishDockerImages: true,
7-
dockerfileDir: 'docker',
8-
buildContext: '.')
5+
shouldPublishDockerImages: true)

README.md

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,45 +8,49 @@ Incoming requests are locally stored in a database.
88
Transactions related to these requests are being asynchronously sent to a blockchain node.
99
At any time, the caller can retrieve the processing status for his request.
1010

11-
The iExec Blockchain Adapter API is available as an OCI image on [Docker Hub](https://hub.docker.com/r/iexechub/iexec-blockchain-adapter-api/tags).
11+
The iExec Blockchain Adapter API is available as an OCI image
12+
on [Docker Hub](https://hub.docker.com/r/iexechub/iexec-blockchain-adapter-api/tags).
1213

1314
To run properly, the iExec Blockchain Adapter API requires:
15+
1416
* A blockchain node. iExec smart contracts must be deployed on the blockchain network.
1517
* A MongoDB instance to persist its data.
1618
* An Ethereum wallet to interact with smart contracts on the blockchain network.
1719

1820
## Configuration
1921

20-
| Environment variable | Description | Type | Default value |
21-
| --- | --- | --- | --- |
22-
| `IEXEC_BLOCKCHAIN_ADAPTER_API_PORT` | Server HTTP port of the Blockchain Adapter API. | Positive integer | `13010` |
23-
| `IEXEC_BLOCKCHAIN_ADAPTER_API_USERNAME` | Login username of the server. | String | `admin` |
24-
| `IEXEC_BLOCKCHAIN_ADAPTER_API_PASSWORD` | Login password of the server. | String | `whatever` |
25-
| `IEXEC_BLOCKCHAIN_ADAPTER_API_MONGO_HOST` | Mongo server host. Cannot be set with URI. | String | `localhost` |
26-
| `IEXEC_BLOCKCHAIN_ADAPTER_API_MONGO_PORT` | Mongo server port. Cannot be set with URI. | Positive integer | `13012` |
27-
| `IEXEC_BLOCKCHAIN_ADAPTER_API_CHAIN_ID` | Chain ID of the blockchain network to connect. | Positive integer | `134` |
28-
| `IEXEC_BLOCKCHAIN_ADAPTER_API_IS_SIDECHAIN` | Define whether iExec on-chain protocol is built on top of token (`false`) or native currency (`true`). | Boolean | `true` |
29-
| `IEXEC_BLOCKCHAIN_ADAPTER_API_NODE_ADDRESS` | URL to connect to the blockchain network. | URL | `https://bellecour.iex.ec` |
30-
| `IEXEC_BLOCKCHAIN_ADAPTER_API_BLOCK_TIME` | Duration between consecutive blocks on the blockchain network, in seconds. | Positive integer | `5` |
31-
| `IEXEC_BLOCKCHAIN_ADAPTER_API_HUB_ADDRESS` | Proxy contract address to interact with the iExec on-chain protocol. | Ethereum Address | `0x3eca1B216A7DF1C7689aEb259fFB83ADFB894E7f` |
32-
| `IEXEC_BLOCKCHAIN_ADAPTER_API_GAS_PRICE_MULTIPLIER` | Transactions will be sent with `networkGasPrice * gasPriceMultiplier`. | Float | `1.0` |
33-
| `IEXEC_BLOCKCHAIN_ADAPTER_API_GAS_PRICE_CAP` | In Wei, will be used for transactions if `networkGasPrice * gasPriceMultiplier > gasPriceCap`. | Positive integer | `22000000000` |
34-
| `IEXEC_BLOCKCHAIN_ADAPTER_API_WALLET_PATH` | Path to the wallet of the server. | String | `src/main/resources/wallet.json` |
35-
| `IEXEC_BLOCKCHAIN_ADAPTER_API_WALLET_PASSWORD` | Password to unlock the wallet of the server. | String | `whatever` |
22+
| Environment variable | Description | Type | Default value |
23+
|---------------------------------------------------------|--------------------------------------------------------------------------------------------------------|------------------|----------------------------------------------|
24+
| `IEXEC_BLOCKCHAIN_ADAPTER_API_PORT` | Server HTTP port of the Blockchain Adapter API. | Positive integer | `13010` |
25+
| `IEXEC_BLOCKCHAIN_ADAPTER_API_USERNAME` | Login username of the server. | String | `admin` |
26+
| `IEXEC_BLOCKCHAIN_ADAPTER_API_PASSWORD` | Login password of the server. | String | `whatever` |
27+
| `IEXEC_BLOCKCHAIN_ADAPTER_API_MONGO_HOST` | Mongo server host. Cannot be set with URI. | String | `localhost` |
28+
| `IEXEC_BLOCKCHAIN_ADAPTER_API_MONGO_PORT` | Mongo server port. Cannot be set with URI. | Positive integer | `13012` |
29+
| `IEXEC_BLOCKCHAIN_ADAPTER_API_CHAIN_ID` | Chain ID of the blockchain network to connect. | Positive integer | `134` |
30+
| `IEXEC_BLOCKCHAIN_ADAPTER_API_IS_SIDECHAIN` | Define whether iExec on-chain protocol is built on top of token (`false`) or native currency (`true`). | Boolean | `true` |
31+
| `IEXEC_BLOCKCHAIN_ADAPTER_API_NODE_ADDRESS` | URL to connect to the blockchain network. | URL | `https://bellecour.iex.ec` |
32+
| `IEXEC_BLOCKCHAIN_ADAPTER_API_BLOCK_TIME` | Duration between consecutive blocks on the blockchain network, in seconds. | Positive integer | `5` |
33+
| `IEXEC_BLOCKCHAIN_ADAPTER_API_HUB_ADDRESS` | Proxy contract address to interact with the iExec on-chain protocol. | Ethereum Address | `0x3eca1B216A7DF1C7689aEb259fFB83ADFB894E7f` |
34+
| `IEXEC_BLOCKCHAIN_ADAPTER_API_GAS_PRICE_MULTIPLIER` | Transactions will be sent with `networkGasPrice * gasPriceMultiplier`. | Float | `1.0` |
35+
| `IEXEC_BLOCKCHAIN_ADAPTER_API_GAS_PRICE_CAP` | In Wei, will be used for transactions if `networkGasPrice * gasPriceMultiplier > gasPriceCap`. | Positive integer | `22000000000` |
36+
| `IEXEC_BLOCKCHAIN_ADAPTER_API_MAX_ALLOWED_TX_PER_BLOCK` | Max number of transactions per block, it can either be `1` or `2`. | Positive integer | `1` |
37+
| `IEXEC_BLOCKCHAIN_ADAPTER_API_WALLET_PATH` | Path to the wallet of the server. | String | `src/main/resources/wallet.json` |
38+
| `IEXEC_BLOCKCHAIN_ADAPTER_API_WALLET_PASSWORD` | Password to unlock the wallet of the server. | String | `whatever` |
3639

3740
## Health checks
3841

3942
A health endpoint (`/actuator/health`) is enabled by default and can be accessed on the **IEXEC_BLOCKCHAIN_ADAPTER_API_PORT**.
40-
This endpoint allows to define health checks in an orchestrator or a [compose file](https://github.com/compose-spec/compose-spec/blob/master/spec.md#healthcheck).
41-
No default strategy has been implemented in the [Dockerfile](docker/Dockerfile) at the moment.
43+
This endpoint allows to define health checks in an orchestrator or
44+
a [compose file](https://github.com/compose-spec/compose-spec/blob/master/spec.md#healthcheck).
45+
No default strategy has been implemented in the [Dockerfile](Dockerfile) at the moment.
4246

4347
## Running in development mode
4448

4549
`./gradlew docker`
4650

4751
## CI/CD build
4852

49-
`docker image build -f docker/Dockerfile .`
53+
`docker image build .`
5054

5155
## License
5256

0 commit comments

Comments
 (0)