You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: enhance README for clarity and other docs updates for v1.4.0
* docs: enhance README for clarity
- Enhanced README.md with updated project overview, key features, quick start instructions, and detailed API usage examples.
- Improved documentation structure for better navigation and clarity, including links to relevant resources and support channels.
* docs: update resource requirements and pruning configuration in documentation
- Revised README.md to clarify resource requirements for different hardware profiles, including updated storage needs for pruning enabled and disabled scenarios.
- Enhanced documentation on pruning configuration, specifying default values and safety margins for spent UTXO pruning.
- Updated environment variable documentation to reflect changes in default settings for pruning options.
* docs: update README and Docker documentation for environment management
- Enhanced README.md to clarify log viewing instructions and added commands for merging environment files to avoid warnings.
- Updated Docker documentation to include tips for managing environment files and emphasized the deprecation of the single Docker image deployment in favor of Docker Compose for better modularity and resource management.
* docs: cleanup tags, highlight pruning info and other cosmetics
- Revised README.md to clarify that Spent UTXO pruning is enabled by default starting from v1.4.0.
- Enhanced warnings about the deprecation of the single Docker image deployment.
* docs: enhance multi-assets guide with account balance and UTXO queries
- Updated the multi-assets documentation to clarify the usage of `/account/balance` and `/account/coins` endpoints for querying account balances and UTXOs.
- Added detailed request and response examples for both endpoints, including information on querying with stake addresses and known issues.
- Improved structure with tabs for better navigation and clarity.
* docs: add offline operations deployment docs and FULL VACCUM commands after pruning to reclaim file size
* chore: update environment variable configurations
- Disabled token registry and cleared base URL in .env.docker-compose-preprod
- Updated env-vars documentation to reflect new vars and defaults
---------
Co-authored-by: Kartiiyer12 <kartikiyer2020@gmail.com>
Copy file name to clipboardExpand all lines: docs/docs/advanced-configuration/pruning.md
+35-11Lines changed: 35 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ When enabled, the pruning process operates as follows:
22
22
23
23
1. New UTXOs are indexed as transactions occur.
24
24
2. UTXOs are marked as spent when consumed in subsequent transactions.
25
-
3. A background job periodically permanently deletes spent UTXOs that are older than a configurable safety margin (default: 2,160 blocks, ~12 hours on mainnet). This buffer safeguards data integrity against chain rollbacks within Cardano's finality window.
25
+
3. A background job periodically permanently deletes spent UTXOs that are older than a configurable safety margin (default: 129,600 blocks, ~30 days on mainnet). This buffer safeguards data integrity against chain rollbacks within Cardano's finality window.
26
26
27
27
**Impact Summary:**
28
28
| Aspect | Effect |
@@ -34,7 +34,7 @@ When enabled, the pruning process operates as follows:
34
34
35
35
## Impact on Rosetta API Endpoints
36
36
37
-
Spent UTXO pruning affects Rosetta API endpoints differently based on their reliance on historical transaction data. The table below summarizes the impact. Note that "Recent" refers to data within the safety margin (default ~12 hours).
37
+
Spent UTXO pruning affects Rosetta API endpoints differently based on their reliance on historical transaction data. The table below summarizes the impact. Note that "Recent" refers to data within the safety margin (default ~30 days).
38
38
39
39
:::info Oldest Block Identifier
40
40
When pruning is enabled, the `/network/status` endpoint includes an additional `oldest_block_identifier` object in its response. This identifier corresponds to the latest fully queryable block with complete data. Below this block index, blocks might have missing data due to pruning, making historical queries unreliable.
@@ -89,24 +89,24 @@ Spent UTXO pruning is configured via environment variables, typically set in you
89
89
# --- Spent UTXO Pruning Configuration ---
90
90
91
91
# Enable or disable spent UTXO pruning.
92
-
# Default: false (Pruning is disabled by default)
93
-
# To enable, set to: true
92
+
# Default: true (Pruning is enabled by default)
93
+
# To disable, set to: false
94
94
REMOVE_SPENT_UTXOS=true
95
95
96
96
# Safety margin: Number of recent blocks for which spent UTXOs are retained.
97
-
# Default: 2160 (approximately 12 hours of blocks on mainnet)
97
+
# Default: 129600 (approximately 30 days of blocks on mainnet)
98
98
# This value balances safety for rollbacks against storage savings.
99
-
# Example: To keep ~24 hours of spent UTXOs, set to 4320.
99
+
# Example: To keep ~7 days of spent UTXOs, set to 30240.
100
100
# Note: Larger REMOVE_SPENT_UTXOS_LAST_BLOCKS_GRACE_COUNT values provide longer historical query support
101
101
# but use more disk space and delay the realization of storage benefits.
102
-
REMOVE_SPENT_UTXOS_LAST_BLOCKS_GRACE_COUNT=2160
102
+
REMOVE_SPENT_UTXOS_LAST_BLOCKS_GRACE_COUNT=129600
103
103
```
104
104
105
105
:::note Configuration Guidelines
106
106
107
-
-Start with the default settings (`REMOVE_SPENT_UTXOS=false` keeps pruning off).
108
-
- The provided defaults (`REMOVE_SPENT_UTXOS_LAST_BLOCKS_GRACE_COUNT=2160`) offer ~12 h of rollback safety on mainnet.
109
-
-Increase`REMOVE_SPENT_UTXOS_LAST_BLOCKS_GRACE_COUNT`if you need a longer historical query window; decrease it for more aggressive space savings.
107
+
-Default settings have pruning enabled (`REMOVE_SPENT_UTXOS=true`) for optimal storage efficiency.
108
+
- The provided defaults (`REMOVE_SPENT_UTXOS_LAST_BLOCKS_GRACE_COUNT=129600`) offer ~30 days of rollback safety on mainnet.
109
+
-Decrease`REMOVE_SPENT_UTXOS_LAST_BLOCKS_GRACE_COUNT`for more aggressive space savings (e.g., 2160 for ~12 hours); increase it if you need a longer historical query window.
110
110
:::
111
111
112
112
## Migration and Operational Notes
@@ -132,7 +132,31 @@ The resynchronization process rebuilds the indexer database from your existing C
132
132
133
133
This is necessary in two main scenarios:
134
134
135
-
-**To reclaim disk space**: When you enable pruning on an existing instance, a resync will clear out historically spent UTXOs.
135
+
-**To reclaim disk space**: When you enable pruning on an existing instance, a resync will clear out historically spent UTXOs. However, to actually reduce the file size on disk after `REMOVE_SPENT_UTXOS` is enabled and the indexer has fully synced, you must manually reclaim the space using PostgreSQL's VACUUM FULL command on the affected tables:
# Run VACUUM FULL on the tables that store UTXO data
145
+
VACUUM FULL tx_input;
146
+
VACUUM FULL address_utxo;
147
+
```
148
+
149
+
:::warning Database Maintenance Required
150
+
The VACUUM FULL operation requires an exclusive lock on the tables and can take significant time to complete. Plan for potential downtime during this maintenance operation. In addition, sufficient free disk space must be available, since VACUUM FULL rewrites each table by creating a new copy before replacing the old one. For example, in this case you would need approximately 400 GB of free space to complete the operation. The process will:
151
+
152
+
-**Reclaim disk space**: Remove the gaps left by deleted spent UTXOs
153
+
-**Reorganize table data**: Compact the remaining data for better performance
154
+
-**Require exclusive access**: Block all other operations on these tables during execution
155
+
:::
156
+
157
+
:::tip Alternative Approach
158
+
If you prefer to avoid the VACUUM FULL maintenance window, performing a complete indexer resynchronization (as described above) will achieve the same disk space reclamation while rebuilding the database from scratch with the new pruning configuration.
159
+
:::
136
160
-**To restore full history**: When you disable pruning, a resync will rebuild the complete transaction history that was previously pruned away.
Copy file name to clipboardExpand all lines: docs/docs/core-concepts/operation-modes.md
+20-5Lines changed: 20 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ import TabItem from '@theme/TabItem';
13
13
<Tabs>
14
14
<TabItemvalue="online"label="Online Mode"default>
15
15
16
-
## Online Mode
16
+
17
17
18
18
In online mode, the system connects to the Cardano network, synchronizes the blockchain, and provides real-time access to blockchain data. This is the default mode and requires a connection to the Cardano network.
19
19
@@ -29,20 +29,35 @@ This mode is used for blockchain synchronization, transaction broadcasting, and
29
29
</TabItem>
30
30
<TabItemvalue="offline"label="Offline Mode">
31
31
32
-
## Offline Mode
32
+
33
33
34
34
In offline mode, the system operates without connecting to the Cardano network. The Cardano Node, YACI Indexer, and PostgreSQL components are disabled, and only the Rosetta API is active.
35
35
36
36
Offline mode is useful for transaction construction and signing in air-gapped environments or security-critical applications. This mode allows you to create and sign transactions without broadcasting them to the network, which is particularly important for cold wallet solutions and high-security setups.
37
37
38
38
:::tip Enabling Offline Mode
39
-
To enable offline mode, set the `API_SPRING_PROFILES_ACTIVE` environment variable to `offline` in the configuration file:
40
-
39
+
To enable offline mode, set the `API_SPRING_PROFILES_ACTIVE` and `TOKEN_REGISTRY_ENABLED` as below:
⚠️ **The single Docker image deployment is deprecated and not recommended for production use.**
95
+
96
+
This method bundles all components (cardano-node, indexer, API, and PostgreSQL) into a single container, which:
97
+
- Makes resource management difficult
98
+
- Complicates debugging and maintenance
99
+
- Prevents independent component scaling
100
+
- Is less reliable for production workloads
101
+
102
+
**We strongly recommend using the Docker Compose deployment method instead**, which offers better modularity, resource management, and maintainability.
103
+
:::
74
104
75
105
For every release, pre-built docker images are available on [DockerHub](https://hub.docker.com/orgs/cardanofoundation/repositories):
76
106
@@ -100,9 +130,13 @@ API documentation is available [here](https://input-output-hk.github.io/cardano-
100
130
:::
101
131
102
132
</TabItem>
103
-
<TabItemvalue="source"label="Build from Source">
133
+
<TabItemvalue="source"label="Build from Source (Single Image)">
104
134
105
-
### Building Docker Image from Source
135
+
### Building Docker Image from Source (Single Container)
136
+
137
+
:::warning Deprecated Approach
138
+
This builds the deprecated single Docker image that bundles all components together. For production deployments, use the Docker Compose method which builds and manages components separately.
0 commit comments