Skip to content

Commit 85ab335

Browse files
authored
docs: misc docs updates for v1.3.2 release (#586)
Documentation update addressing critical issues and adding new feature documentation for cardano-rosetta-java v1.3.2. ### Changes Made **Removed deprecated features:** - Deleted Catalyst voting documentation (feature removed in v1.3.0) - Cleaned up all references in user guides and core concepts **Fixed native assets documentation:** - Corrected sign convention: negative values for inputs, positive for outputs - Replaced HEX symbols with ASCII representations in examples - Added comprehensive minting/burning observations note - Updated API spec with Cardano-specific terminology **Added CIP-129 support documentation:** - Updated DRep delegation guide for 29-byte hash support - Clarified that `type` field remains required for all formats - Enhanced API spec with DRep parameter descriptions **Added performance metrics:** - Created v1.3.2 performance test results and integrated with existing documentation **Fixed Docker volume path:** - Corrected PostgreSQL volume from `/node/postgres` to `/var/lib/postgresql/data`
2 parents 4956376 + 4e0673b commit 85ab335

File tree

10 files changed

+138
-231
lines changed

10 files changed

+138
-231
lines changed

api/src/main/resources/rosetta-specifications-1.4.15/api.yaml

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -708,7 +708,8 @@ components:
708708
metadata:
709709
$ref: '#/components/schemas/TransactionMetadata'
710710
Operation:
711-
description: Operations contain all balance-changing information within a transaction. They are always one-sided (only affect 1 AccountIdentifier) and can succeed or fail independently from a Transaction. Operations are used both to represent on-chain data (Data API) and to construct new transactions (Construction API), creating a standard interface for reading and writing to blockchains.
711+
description: |
712+
Operations contain all balance-changing information within a transaction. They are always one-sided (only affect 1 AccountIdentifier) and can succeed or fail independently from a Transaction. Operations are used both to represent on-chain data (Data API) and to construct new transactions (Construction API), creating a standard interface for reading and writing to blockchains.\n \n For Cardano: Input operations use negative values for both ADA and native tokens (in tokenBundle metadata). Output operations use positive values. See https://cardano-foundation.github.io/cardano-rosetta-java/docs/user-guides/multi-assets for details.
712713
type: object
713714
required:
714715
- operation_identifier
@@ -748,26 +749,28 @@ components:
748749
- currency
749750
properties:
750751
value:
751-
description: Value of the transaction in atomic units represented as an arbitrary-sized signed integer. For example, 1 BTC would be represented by a value of 100000000.
752+
description: Value of the transaction in atomic units represented as an arbitrary-sized signed integer. For example, 1 ADA would be represented by a value of 1000000 (since ADA has 6 decimals).
752753
type: string
753754
example: '1238089899992'
754755
currency:
755756
$ref: '#/components/schemas/Currency'
756757
metadata:
757758
type: object
758759
Currency:
759-
description: Currency is composed of a canonical Symbol and Decimals. This Decimals value is used to convert an Amount.Value from atomic units (Satoshis) to standard units (Bitcoins).
760+
description: Currency is composed of a canonical Symbol and Decimals. This Decimals value is used to convert an Amount.Value from atomic units (Lovelaces for ADA, or smallest unit for native tokens) to standard units (ADA or token units).
760761
type: object
761762
required:
762763
- symbol
763764
- decimals
764765
properties:
765766
symbol:
766-
description: Canonical symbol associated with a currency.
767+
description: |
768+
Canonical symbol associated with a currency. For Cardano native tokens, this should be the ASCII representation of the token name.
769+
Empty string "" should be used when a token has no name.
767770
type: string
768-
example: BTC
771+
example: ADA
769772
decimals:
770-
description: Number of decimal places in the standard unit representation of the amount. For example, BTC has 8 decimals. Note that it is not possible to represent the value of some currency in atomic units that is not base 10.
773+
description: Number of decimal places in the standard unit representation of the amount. For example, ADA has 6 decimals. Note that it is not possible to represent the value of some currency in atomic units that is not base 10.
771774
type: integer
772775
format: int32
773776
minimum: 0
@@ -1743,7 +1746,9 @@ components:
17431746
size: 12378
17441747
lockTime: 1582272577
17451748
OperationMetadata:
1746-
description: OperationMetadata is used to provide any additional data needed for an Operation. It is important to populate this object with any data a consumer will need to fully understand an Operation.
1749+
description: |
1750+
OperationMetadata provides additional data needed for an Operation. For Cardano-specific operations, this includes native token bundles, staking credentials, and governance parameters.
1751+
See https://cardano-foundation.github.io/cardano-rosetta-java/docs/core-concepts/cardano-addons for Cardano-specific metadata documentation.
17471752
type: object
17481753
properties:
17491754
withdrawalAmount:
@@ -1761,7 +1766,7 @@ components:
17611766
description: Pool key as hex bytes.
17621767
type: string
17631768
drep:
1764-
description: DRep
1769+
description: DRep parameters for vote delegation operations
17651770
$ref: '#/components/schemas/DRepParams'
17661771
poolGovernanceVoteParams:
17671772
description: PoolGovernanceVoteParams contains parameters related to casting a governance vote by a pool operator.
@@ -1771,7 +1776,9 @@ components:
17711776
description: Epoch
17721777
type: integer
17731778
tokenBundle:
1774-
description: TokenBundle
1779+
description: |
1780+
Native token bundle associated with the operation. Token values MUST be negative for input operations (spending) and positive for output operations (receiving).
1781+
See documentation at https://cardano-foundation.github.io/cardano-rosetta-java/docs/user-guides/multi-assets for details.
17751782
type: array
17761783
items:
17771784
$ref: '#/components/schemas/TokenBundleItem'
@@ -1844,34 +1851,50 @@ components:
18441851
description: votingSignature
18451852
type: string
18461853
TokenBundleItem:
1847-
description: TokenBundleItem
1854+
description: |
1855+
Represents a collection of native tokens under a single policy ID. Used in tokenBundle metadata to track native assets in operations.
1856+
Note: Minting and burning are not supported through Construction API - only transfers of existing tokens.
18481857
type: object
18491858
properties:
18501859
policyId:
1851-
description: PolicyId
1860+
description: The policy ID that controls these native tokens (hex string)
18521861
type: string
18531862
tokens:
1854-
description: Tokens
1863+
description: |
1864+
Array of token amounts under this policy. Values must be negative for inputs (spending) and positive for outputs (receiving).
1865+
Symbol should be the ASCII representation of the token name.
18551866
type: array
18561867
items:
18571868
$ref: '#/components/schemas/Amount'
18581869
DRepTypeParams:
1859-
description: DRepTypeParams
1870+
description: Type of DRep delegation (key_hash, script_hash, no_confidence, or abstain)
18601871
type: string
18611872
enum:
18621873
- key_hash
18631874
- script_hash
18641875
- no_confidence
18651876
- abstain
18661877
DRepParams:
1867-
description: DRep
1878+
description: |
1879+
Delegated Representative (DRep) parameters for vote delegation.
1880+
Supports CIP-129 format: accepts both 29-byte hashes (with prefix) and 28-byte raw hashes.
1881+
The type field is required for all formats.
1882+
See https://cardano-foundation.github.io/cardano-rosetta-java/docs/user-guides/drep-delegation for details.
18681883
type: object
1884+
required:
1885+
- type
18691886
properties:
18701887
id:
1871-
description: DRepId
1888+
description: |
1889+
DRep identifier. For key_hash and script_hash types:
1890+
- Accepts 29-byte hash with CIP-129 prefix (e.g., "03" for key_hash)
1891+
- Accepts 28-byte raw hash without prefix
1892+
- The API automatically strips the prefix if present
1893+
Not required for abstain and no_confidence types.
18721894
type: string
1895+
example: "74984fae4ca1715fa1f8759f9d871015ac87f449a85dea6cf9956da1"
18731896
type:
1874-
description: DRepType
1897+
description: Type of DRep delegation. Required for all operations.
18751898
$ref: '#/components/schemas/DRepTypeParams'
18761899
PoolRegistrationParams:
18771900
description: PoolRegistrationParams
@@ -2039,11 +2062,11 @@ components:
20392062
description: 'ChainCode '
20402063
type: string
20412064
CurrencyMetadata:
2042-
description: ''
2065+
description: 'Cardano-specific metadata for native tokens'
20432066
type: object
20442067
properties:
20452068
policyId:
2046-
description: ''
2069+
description: 'The policy ID that controls this native token (hex string). Required for all non-ADA currencies.'
20472070
type: string
20482071
ConstructionMetadataRequestOption:
20492072
description: ''

docker/readme.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@ If you want to use already existing cardano data, you can mount the data volume
6262

6363
### 6. Volume with Postgres data
6464
````
65-
docker run --env-file .\docker\.env.dockerfile --env-file ./docker/.env.docker-profile-mid-level -p 8082:8082 -v {custom_folder}:/node/postgres --shm-size=4g -d {image_name}:latest
65+
docker run --env-file .\docker\.env.dockerfile --env-file ./docker/.env.docker-profile-mid-level -p 8082:8082 -v {custom_folder}:/var/lib/postgresql/data --shm-size=4g -d {image_name}:latest
6666
````
6767

68-
You can mount a volume with Postgres node data to ``/node/postgres`` point to use already existed data.
68+
You can mount a volume with Postgres node data to ``/var/lib/postgresql/data`` point to use already existed data.
6969
If the mounted volume does not contain the database or empty, new database will be created there.
7070

7171
### 7. Volume with custom network configurations

docs/docs/core-concepts/cardano-addons.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ Cardano Rosetta supports all operations available within the Cardano blockchain:
2727
- <a href="/cardano-rosetta-java/api#model/OperationMetadata" target="_blank">`Withdrawal`</a> - Withdraws rewards from a reward account
2828
- <a href="/cardano-rosetta-java/api#model/PoolRegistrationParams" target="_blank">`Pool_Registration`</a> - Registers a stake pool
2929
- <a href="/cardano-rosetta-java/api#model/OperationMetadata" target="_blank">`Pool_Retirement`</a> - Retires a stake pool
30-
- <a href="/cardano-rosetta-java/api#model/VoteRegistrationMetadata" target="_blank">`Vote_Registration`</a> - Registers for voting (Catalyst)
3130
- <a href="/cardano-rosetta-java/api#model/DRepParams" target="_blank">`dRepVoteDelegation`</a> - Delegates voting power to a Delegated Representative (DRep) for Cardano governance
3231

3332
To support these operations, extra metadata is added to the standard Rosetta operation structure:
@@ -43,7 +42,6 @@ To support these operations, extra metadata is added to the standard Rosetta ope
4342
"tokenBundle": { "type": "TokenBundleItem" },
4443
"poolRegistrationCert": { "type": "string" },
4544
"poolRegistrationParams": { "type": "PoolRegistrationParams" },
46-
"voteRegistrationMetadata": { "type": "VoteRegistrationMetadata" },
4745
"drep": { "type": "DRepObject" }
4846
}
4947
```
@@ -102,8 +100,15 @@ For transaction fields for the `size` and `scriptSize` are added to Transaction
102100

103101
### `/block/transactions`
104102

105-
When the block requested contains transactions with multi assets operations, the token bundles associated to each operation will be returned as metadata as follows:
103+
When the block requested contains transactions with multi assets operations, the token bundles associated to each operation will be returned as metadata.
106104

105+
:::note
106+
Token values are negative for input operations (spending) and positive for output operations (receiving).
107+
108+
For comprehensive documentation on native token operations, including sign conventions, minting/burning observations, and construction examples, see the [Native Tokens User Guide](/user-guides/multi-assets).
109+
:::
110+
111+
**Example for an input operation (spending tokens):**
107112
```json
108113
{
109114
"metadata": {
@@ -114,7 +119,7 @@ When the block requested contains transactions with multi assets operations, the
114119
{
115120
"value": "-5",
116121
"currency": {
117-
"symbol": "6a78546f6b656e31",
122+
"symbol": "jxToken1",
118123
"decimals": 0
119124
}
120125
}
@@ -156,7 +161,7 @@ For accounts that have a multi asset balance, these will be returned with the co
156161
{
157162
"value": "10",
158163
"currency": {
159-
"symbol": "7376c3a57274",
164+
"symbol": "jxToken1",
160165
"decimals": 0,
161166
"metadata": {
162167
"policyId": "fc5a8a0aac159f035a147e5e2e3eb04fa3b5e67257c1b971647a717d"
@@ -377,6 +382,4 @@ In order to support Byron addresses an extra field called `chain_code` in the `a
377382

378383
Both `signed_unsigned` and `unsigned_transaction` don't correspond to a valid Cardano Transaction that can be forwarded to the network as they contain extra data required in the Rosetta workflow. This means that such transactions cannot be decoded nor sent directly to a `cardano-node`.
379384

380-
Transaction's metadata, needed for example for vote registration operations, is also encoded as extra data.
381-
382385
There is no expectation that the transactions which are constructed in Rosetta can be parsed by network-specific tools or broadcast on a non-Rosetta node. All parsing and broadcast of these transactions will occur exclusively over the Rosetta API.

docs/docs/development/performance-measurements.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ description: Performance measurement methodologies and results
77
import Tabs from '@theme/Tabs';
88
import TabItem from '@theme/TabItem';
99

10+
import MidDockerCompose132 from './test-results/1.3.2/mid_profile/docker-compose.md';
11+
1012
import AdvDockerCompose131_pruned from './test-results/1.3.1/advanced_profile/docker-compose-pruned.md';
1113
import MidDockerCompose131 from './test-results/1.3.1/mid_profile/docker-compose.md';
1214

@@ -57,6 +59,27 @@ Load tests are conducted using Apache Bench (ab) with a ramp-up strategy, progre
5759
To better understand the environments in which these results were obtained, please refer to our [hardware profiles documentation](../install-and-deploy/hardware-profiles).
5860
:::
5961

62+
<details>
63+
<summary>
64+
### v1.3.2 (Sep 5, 2025)
65+
</summary>
66+
- [Release Notes](https://github.com/cardano-foundation/cardano-rosetta-java/releases/tag/1.3.2)
67+
68+
<details>
69+
<summary>
70+
**Mid-level Hardware Profile**
71+
</summary>
72+
**Machine Specs:** 8 cores, 8 threads, 47GB RAM, 3.9TB NVMe, QEMU Virtual CPU v2.5+
73+
<details>
74+
<Tabs>
75+
<TabItem value="mid_docker_compose132" label="Docker Compose" default>
76+
<MidDockerCompose132 />
77+
</TabItem>
78+
</Tabs>
79+
</details>
80+
</details>
81+
</details>
82+
6083
<details>
6184
<summary>
6285
### v1.3.1 (Aug 7, 2025)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
The performance metrics in this table were measured against an SLA of 1000 ms.
2+
3+
| ID | Endpoint | Max Concurrency | p95 (ms) | p99 (ms) | Non-2xx | Error Rate (%) | Reqs/sec |
4+
|----|-------------------------|------------------|----------|----------|----------|------------------|-----------|
5+
| 1 | /network/status | 500 | 187 | 223 | 0 | 0.00% | 4763.58 |
6+
| 2 | /account/balance | 200 | 850 | 990 | 0 | 0.00% | 340.34 |
7+
| 3 | /account/coins | 200 | 837 | 967 | 0 | 0.00% | 357.62 |
8+
| 4 | /block | 150 | 579 | 703 | 0 | 0.00% | 434.22 |
9+
| 5 | /block/transaction | 200 | 648 | 905 | 151 | 0.57% | 433.11 |
10+
| 6 | /search/transactions | 175 | 127 | 169 | 4 | 0.01% | 2041.35 |
11+
| 7 | /construction/metadata | 500 | 125 | 247 | 0 | 0.00% | 9043.61 |

docs/docs/install-and-deploy/docker.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,12 @@ docker restart yaci-indexer
227227

228228
### Important Container Paths
229229

230-
| Path | Description |
231-
| ---------------- | -------------------------- |
232-
| `/node/db` | Cardano Node Data |
233-
| `/node/postgres` | PostgreSQL Data |
234-
| `/networks` | Network config location |
235-
| `/logs` | Log files for each service |
230+
| Path | Description |
231+
| -------------------------- | -------------------------- |
232+
| `/node/db` | Cardano Node Data |
233+
| `/var/lib/postgresql/data` | PostgreSQL Data |
234+
| `/networks` | Network config location |
235+
| `/logs` | Log files for each service |
236236

237237
## Running Integration Tests
238238

docs/docs/user-guides/_category_.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
"position": 4,
44
"link": {
55
"type": "generated-index",
6-
"description": "Comprehensive guides for working with Cardano Rosetta API implementation. These guides cover various Cardano-specific operations including multi-asset transactions, staking, pool operations, Catalyst voting, and DRep delegation."
6+
"description": "Comprehensive guides for working with Cardano Rosetta API implementation. These guides cover various Cardano-specific operations including multi-asset transactions, staking, pool operations, and DRep delegation."
77
}
88
}

0 commit comments

Comments
 (0)