Skip to content
This repository was archived by the owner on Dec 2, 2024. It is now read-only.

Commit 8a4ebeb

Browse files
authored
Move marconi executable to the right directory (#702)
1 parent 898f47f commit 8a4ebeb

File tree

2 files changed

+42
-42
lines changed

2 files changed

+42
-42
lines changed

default.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ rec {
6464

6565
plutus-chain-index = plutus-apps.haskell.packages.plutus-chain-index.components.exes.plutus-chain-index;
6666

67-
marconi = plutus-apps.haskell.packages.plutus-chain-index.components.exes.marconi;
67+
marconi = plutus-apps.haskell.packages.marconi.components.exes.marconi;
6868

6969
create-script-context = plutus-apps.haskell.packages.plutus-example.components.exes.create-script-context;
7070

marconi/README.md

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,19 @@ A lightweight customizable solution for indexing and querying the Cardano blockc
99

1010
### Built by IOG in Haskell
1111

12-
* dApp developers can index whatever is important to them.
13-
* Marconi is an indexing solution for developers who need to store on-chain data in a local database.
12+
* dApp developers can index whatever is important to them.
13+
* Marconi is an indexing solution for developers who need to store on-chain data in a local database.
1414

1515
## Introduction
1616

17-
Marconi is a blockchain query solution that you can configure for the types of information that you need to index and according to how you need to structure your database schema.
17+
Marconi is a blockchain query solution that you can configure for the types of information that you need to index and according to how you need to structure your database schema.
1818

19-
Marconi consists of these three components:
19+
Marconi consists of these three components:
2020

21-
| Component | Description |
22-
| --------- | ----------- |
23-
| Streamer | Provides event stream of configured data types |
24-
| Index | Indexes and stores the data in a database |
21+
| Component | Description |
22+
| --------- | ----------- |
23+
| Streamer | Provides event stream of configured data types |
24+
| Index | Indexes and stores the data in a database |
2525
| Query | Fetches information from the database |
2626

2727
The streamer attaches to a node, providing an event stream of the configured data types. Your applications can use streams directly. Or streams may be passed to the index component which indexes and stores the data in a database. You can use the query component to fetch information from the database.
@@ -34,23 +34,23 @@ The philosophy behind Marconi is to maintain scalability by customizing the solu
3434

3535
### Handling Blockchain Rollback Events Properly
3636

37-
Marconi is designed to enable dApps to handle blockchain rollback events properly. Since the head of the chain is constantly advancing and rolling back as the consensus algorithm advances the chain, this causes challenging synchronization issues for dApps that need rapid updates of the chain state.
37+
Marconi is designed to enable dApps to handle blockchain rollback events properly. Since the head of the chain is constantly advancing and rolling back as the consensus algorithm advances the chain, this causes challenging synchronization issues for dApps that need rapid updates of the chain state.
3838

3939
Marconi's index component handles rollbacks by distinguishing volatile and immutable blocks. A block on the top of the chain is volatile since it is subject to some probability of being rolled back. Eventually, when the block is deeper than the security parameter, the block becomes immutable. The Marconi indexer tracks this status and keeps the volatile blocks in memory until they become immutable. Once immutable, Marconi persists the blocks to the database.
4040

4141
### Specifying Slots to Query
4242

43-
Through the query interface, you can specify a range of slots to query or indicate that the query is for blocks deeper than a specified number of slots. As a result, you can use simple state management for applications that work only with immutable blocks.
43+
Through the query interface, you can specify a range of slots to query or indicate that the query is for blocks deeper than a specified number of slots. As a result, you can use simple state management for applications that work only with immutable blocks.
4444

4545
### Querying Volatile Data
4646

47-
If your application requires faster response times, you can query volatile data on the head of the chain; however, you must take care to invalidate cached data when rollbacks occur.
47+
If your application requires faster response times, you can query volatile data on the head of the chain; however, you must take care to invalidate cached data when rollbacks occur.
4848

4949
## API Layers
5050

51-
The core Marconi APIs are defined in Haskell in order to support simple use cases where all the components run together in a single process.
51+
The core Marconi APIs are defined in Haskell in order to support simple use cases where all the components run together in a single process.
5252

53-
If your use cases require multiple synchronized instances for load balancing or for supporting different indexers, Marconi is designed with alternative transport layers on top of the core API that support network streaming and RPC calls.
53+
If your use cases require multiple synchronized instances for load balancing or for supporting different indexers, Marconi is designed with alternative transport layers on top of the core API that support network streaming and RPC calls.
5454

5555
## What Differentiates Marconi
5656

@@ -59,9 +59,9 @@ If your use cases require multiple synchronized instances for load balancing or
5959

6060
### DB Sync
6161

62-
Cardano DB-sync is IOG's current indexing solution, but it uses lots of memory and days/week to sync. DB-sync takes an index everything approach to put all information into a database that can support any query at the cost of requiring a large DB server to run it.
62+
Cardano DB-sync is IOG's current indexing solution, but it uses lots of memory and days/week to sync. DB-sync takes an index everything approach to put all information into a database that can support any query at the cost of requiring a large DB server to run it.
6363

64-
In contrast, Marconi requires the user to customize it for the specific application so that only relevant information is streamed or stored. Marconi will be a scalable solution that allows the dApp developer to index whatever is important for their unique use case.
64+
In contrast, Marconi requires the user to customize it for the specific application so that only relevant information is streamed or stored. Marconi will be a scalable solution that allows the dApp developer to index whatever is important for their unique use case.
6565

6666
### Ogmios
6767

@@ -71,31 +71,31 @@ Ogmios exposes the basic node interface as a web service. This is a great option
7171

7272
Oura, implemented in Rust, functions as a notification system that indexers provide. It has good connectivity with cloud infrastructure like Kafka. Marconi provides similar functionality implemented in Haskell to make it easy for Haskell programmers to customize it.
7373

74-
### Scrolls
74+
### Scrolls
7575

76-
Scrolls is the storage and query solution that our indexers provide. Like Scrolls, we can be selective for what is to be indexed. Scrolls can store into multiple databases. Marconi is currently focused on local DBs like SQL lite.
76+
Scrolls is the storage and query solution that our indexers provide. Like Scrolls, we can be selective for what is to be indexed. Scrolls can store into multiple databases. Marconi is currently focused on local DBs like SQL lite.
7777

78-
### Carp
78+
### Carp
7979

8080
## Customizing Marconi
8181

82-
You can customize indexing in the following ways:
82+
You can customize indexing in the following ways:
8383

84-
1. *This statement is a placeholder:* A function that is given events and current state outputs notifications.
84+
1. *This statement is a placeholder:* A function that is given events and current state outputs notifications.
8585

8686
2. Customize how a function performs queries by determining the following aspects of the function:
8787

88-
* The query type. Because Marconi uses an Abstract Data Type (ADT), you need to define the types of queries that the indexer responds to.
88+
* The query type. Because Marconi uses an Abstract Data Type (ADT), you need to define the types of queries that the indexer responds to.
8989
* Query for certain slot numbers by determining the point in the in-memory history where you want to run the query.
9090
* Weigh considerations for in-memory and on-disk data. The query function produces a result by merging the in-memory and on-disk data. If you are concerned only with on-disk data, then you can query the database directly.
9191

92-
3. Customize a function that stores buffered data. While there is no connection to any storage mechanism, there is a nice API is available, and you are encouraged to change it to suit your needs. Changing it is very simple.
92+
3. Customize a function that stores buffered data. While there is no connection to any storage mechanism, there is a nice API is available, and you are encouraged to change it to suit your needs. Changing it is very simple.
9393

94-
Marconi uses the `streaming` library so you can make use of its many combinators.
94+
Marconi uses the `streaming` library so you can make use of its many combinators.
9595

9696
## Documentation
9797

98-
When it exists, we can link to our readthedocs user documentation.
98+
When it exists, we can link to our readthedocs user documentation.
9999

100100
* User Guide
101101
* Reference Guide
@@ -104,7 +104,7 @@ When it exists, we can link to our readthedocs user documentation.
104104

105105
## Intended Use Cases
106106

107-
Description of its primary intended use cases.
107+
Description of its primary intended use cases.
108108

109109
* Sync with the Cardano blockchain (private/public testnet or mainnet) by reading all blocks from the genesis block to the current tip
110110
* Index the syncing information based on the user’s predefined indexing
@@ -116,21 +116,21 @@ Description of its primary intended use cases.
116116

117117
### Use Case 3
118118

119-
## Example Queries
119+
## Example Queries
120120

121-
Can we provide example queries?
121+
Can we provide example queries?
122122

123123
## Architecture
124124

125125
* Provide a compelling diagram
126126

127127
## Architecture Decision Records
128128

129-
* Records of decisions that were made by the team.
130-
* Discuss alternatives.
131-
* Why did we choose one design over another?
132-
* Konstantinos has some for Plutus Apps.
133-
* Radu has some for Marconi.
129+
* Records of decisions that were made by the team.
130+
* Discuss alternatives.
131+
* Why did we choose one design over another?
132+
* Konstantinos has some for Plutus Apps.
133+
* Radu has some for Marconi.
134134

135135
## System Requirements
136136

@@ -142,29 +142,29 @@ The `marconi` executable is available as a nix flake.
142142

143143
You may either clone the [`plutus-apps`](https://github.com/input-output-hk/plutus-apps)
144144
repository and run from the top-level:
145-
```
146-
nix build .#marconi
147-
```
145+
```
146+
nix build --impure .#marconi
147+
```
148148
Or you may run from anywhere:
149149
```
150150
nix build github:input-output-hk/plutus-apps#marconi
151-
```
151+
```
152152

153-
Both commands will produce a `result` directory containing the executable
153+
Both commands will produce a `result` directory containing the executable
154154
`result/bin/marconi`.
155155

156156
### Configuration Procedures
157157

158158
## How to Contribute
159159

160-
How do you contribute to it? What tools, methods, processes are required?
160+
How do you contribute to it? What tools, methods, processes are required?
161161

162-
* Contributing documentation.
163-
* Most of the info in Plutus-Apps and Plutus should also be included in Marconi.
162+
* Contributing documentation.
163+
* Most of the info in Plutus-Apps and Plutus should also be included in Marconi.
164164

165165
## Making Builds
166166

167-
How do you build it?
167+
How do you build it?
168168

169169
### Build Procedures
170170

0 commit comments

Comments
 (0)