@@ -8,89 +8,74 @@ operations.
8
8
## Background
9
9
10
10
In order for Atala Prism to work, it needs to be able to store and query
11
- metadata in a blockchain. Atala Prism already does this in Bitcoin, and now
12
- needs to do it in Cardano. Cardano currently does not offer a way to query or
13
- store metadata but it will when it enters the Shelley era
14
- ([ * spec* ] ( https://github.com/input-output-hk/cardano-ledger-specs/blob/b0f4b024962eb834af55151697c8da72b6df4df8/shelley/chain-and-ledger/executable-spec/cddl-files/shelley.cddl#L162 ) ).
15
- Unfortunately, this will be completed in the order of months, hence it may block
16
- Atala Prism from launching.
11
+ metadata in a blockchain. Atala Prism does through cardano blockchain.
17
12
18
13
### Cardano-related code
19
14
20
15
Below are some important Cardano-related code repositories and a summary of
21
16
their goals and how they are, or are not, important to Atala Prism.
22
17
23
- * [ * cardano-node* ] ( https://github.com/input-output-hk /cardano-node )
18
+ * [ * cardano-node* ] ( https://github.com/IntersectMBO /cardano-node )
24
19
25
20
The core component to participate in a Cardano blockchain.
26
21
27
22
Docker images can be found as
28
- [ * inputoutput/cardano-node* ] ( https://hub.docker.com/r/inputoutput/cardano-node/tags ) .
29
-
30
- * [ * adrestia* ] ( https://github.com/input-output-hk/adrestia )
31
-
32
- Catalog of projects that fall under the scope of Adrestia: the product team
33
- working on developing tooling and client interfaces around Cardano.
23
+ [ * intersectmbo/cardano-node* ] ( https://github.com/IntersectMBO/cardano-node/pkgs/container/cardano-node ) .
34
24
35
25
* [ * cardano-explorer* ] ( https://github.com/input-output-hk/cardano-explorer )
36
26
37
27
Archived code that was split into * cardano-db-sync* , * cardano-rest* , and
38
28
* cardano-graphql* , detailed below.
39
29
40
- * [ * cardano-transactions* ] ( https://github.com/input-output-hk /cardano-transactions )
30
+ * [ * cardano-transactions* ] ( https://github.com/IntersectMBO /cardano-transactions )
41
31
42
32
CLI and Haskell library for building Cardano transactions. End-to-end example
43
33
on how to use it is
44
- [ * here* ] ( https://github.com/input-output-hk /cardano-transactions/wiki/How-to-submit-transaction-via-cardano-tx-CLI ) .
34
+ [ * here* ] ( https://github.com/IntersectMBO /cardano-transactions/wiki/How-to-submit-transaction-via-cardano-tx-CLI ) .
45
35
This library is used by other Cardano projects.
46
36
47
37
No docker images exist for this as it's used as a library.
48
38
49
- * [ * cardano-wallet* ] ( https://github.com/input-output-hk /cardano-wallet )
39
+ * [ * cardano-wallet* ] ( https://github.com/cardano-foundation /cardano-wallet )
50
40
51
- [ * HTTP API* ] ( https://input-output-hk .github.io/cardano-wallet/api/edge/ ) to
41
+ [ * HTTP API* ] ( https://cardano-foundation .github.io/cardano-wallet/api/edge/ ) to
52
42
manage Ada in a high-level fashion without UTxOs, with a handy CLI translating
53
43
commands into API calls. It connects to a locally running * cardano-node* , and
54
44
can send payments hiding the complexity of building transactions manually. The
55
45
Adrestia team has said that both API and CLI will support attaching metadata
56
46
to payments (it should imply * cardano-transactions* will do as well).
57
47
58
48
Docker images can be found as
59
- [ * inputoutput/cardano-wallet* ] ( https://hub.docker.com/r/inputoutput /cardano-wallet/tags ) .
49
+ [ * inputoutput/cardano-wallet* ] ( https://hub.docker.com/r/cardanofoundation /cardano-wallet/tags ) .
60
50
61
- * [ * cardano-db-sync* ] ( https://github.com/input-output-hk /cardano-db-sync )
51
+ * [ * cardano-db-sync* ] ( https://github.com/IntersectMBO /cardano-db-sync )
62
52
63
53
A component that follows a locally running Cardano node and stores blocks and
64
54
transactions in PostgreSQL. The DB is meant to be used as read-only from other
65
55
applications.
66
56
67
57
Docker images can be found as
68
- [ * inputoutput/cardano-db-sync* ] ( https://hub.docker.com/r/inputoutput/cardano-db-sync/tags ) .
69
-
70
- * [ * cardano-rest* ] ( https://github.com/input-output-hk/cardano-rest )
71
-
72
- Currently supported REST APIs for interacting with the Cardano blockchain.
73
- They will keep getting support to work with Shelley, but no new features, like
74
- metadata, will be added. It's meant to be eventually replaced by
75
- * cardano-graphql* below.
76
-
77
- The REST APIs are split in two:
78
- [ * explorer-api* ] ( https://input-output-hk.github.io/cardano-rest/explorer-api/ )
79
- and
80
- [ * submit-api* ] ( https://input-output-hk.github.io/cardano-rest/submit-api/ ) .
81
- * explorer-api* allows to query blockchain data, whereas * submit-api* allows to
82
- submit a new transaction into the blockchain. As stated above, they won't get
83
- any new features, meaning * explorer-api* won't return metadata but, given
58
+ [ * intersectmbo/cardano-db-sync* ] ( https://github.com/IntersectMBO/cardano-db-sync/pkgs/container/cardano-db-sync ) .
59
+
60
+ * [ * explorer-api* ] ( https://input-output-hk.github.io/cardano-rest/explorer-api/ )
61
+
62
+ explorer-api allows to query blockchain data
63
+
64
+ * [ * submit-api* ] ( https://input-output-hk.github.io/cardano-rest/submit-api/ )
65
+
66
+ submit-api allows to submit a new transaction into the blockchain
67
+ #### (explorer/submit)
68
+
69
+ They won't get any new features, meaning * explorer-api* won't return metadata but, given
84
70
* submit-api* only takes a serialized signed transaction as argument, one can
85
71
expect to construct a transaction with metadata and be able to submit it via
86
72
* submit-api* (transaction construction is decoupled from submission).
87
73
88
- Docker images can be found as
89
- [ * inputoutput/cardano-submit-api* ] ( https://hub.docker.com/r/inputoutput/cardano-submit-api/tags )
90
- and
91
- [ * inputoutput/cardano-explorer-api* ] ( https://hub.docker.com/r/inputoutput/cardano-explorer-api/tags ) .
74
+ Docker image:
75
+ [ * inputoutput/cardano-submit-api* ] ( https://github.com/IntersectMBO/cardano-node/pkgs/container/cardano-submit-api )
92
76
93
- * [ * cardano-graphql* ] ( https://github.com/input-output-hk/cardano-graphql )
77
+
78
+ * [ * cardano-graphql* ] ( https://github.com/cardano-foundation/cardano-graphql )
94
79
95
80
Cross-platform, typed, and queryable API service for Cardano. Currently, it
96
81
only generates TypeScript libraries, but Scala can be added. As of today, it
@@ -108,10 +93,9 @@ their goals and how they are, or are not, important to Atala Prism.
108
93
support and the code itself seems expected to be eventually discarded, so it
109
94
isn't interesting to Atala Prism.
110
95
111
- ## Integration plan
96
+ ## Integration
112
97
113
- After discussing with members of the Adrestia team, Atala Prism will
114
- integrate with:
98
+ Atala Prism integrates with:
115
99
116
100
* cardano-node: It's the actual blockchain, so the most important piece.
117
101
@@ -121,59 +105,6 @@ integrate with:
121
105
122
106
* cardano-wallet: Atala Prism does not need to manage UTxOs at the moment, and
123
107
the [ * Cardano Wallet Backend
124
- API* ] ( https://input-output-hk .github.io/cardano-wallet/api/edge/ ) simplifies
108
+ API* ] ( https://cardano-foundation .github.io/cardano-wallet/api/edge/ ) simplifies
125
109
submitting transactions to Cardano.
126
-
127
- All integration can be started immediately without accounting for metadata,
128
- which will be supported eventually by the projects above. By doing so, the
129
- development team can make progress today, incorporating metadata support once
130
- it's ready, as the Wallet API and the DB structure won't change much.
131
-
132
- A former suggestion, by the Adrestia team, was to integrate with
133
- * cardano-graphql* and wait for metadata and transaction submission support.
134
- Unfortunately, this does require way more work for Atala Prism, and it's rather
135
- unnecessary given the points made above.
136
-
137
-
138
- ## How to integrate
139
-
140
- The components to run are:
141
-
142
-
143
- | Repo | Docker image |
144
- | -------------------| ----------------------------------------------------------|
145
- | N/A | ` postgres:${POSTGRES_VERSION} ` |
146
- | ` cardano-node ` | ` inputoutput/cardano-node:${CARDANO_NODE_VERSION} ` |
147
- | ` cardano-wallet ` | ` inputoutput/cardano-wallet:${CARDANO_WALLET_VERSION} ` |
148
- | ` cardano-db-sync ` | ` inputoutput/cardano-db-sync:${CARDANO_DB_SYNC_VERSION} ` |
149
-
150
- With the following default values:
151
-
152
- ``` sh
153
- POSTGRES_VERSION=11.5-alpine
154
- CARDANO_NODE_VERSION=1.10.1
155
- CARDANO_WALLET_VERSION=dev-master-byron
156
- CARDANO_DB_SYNC_VERSION=master
157
- ```
158
-
159
- Both * cardano-node* and * cardano-db-sync* will automatically connect to the
160
- Byron Legacy Testnet when * NETWORK=testnet* . * cardano-wallet* needs to be
161
- instructed where * cardano-node* is running (linux socket), and what
162
- configuration is being used (JSON file). * cardano-db-sync* 's Docker
163
- configuration
164
- ([ * link* ] ( https://github.com/input-output-hk/cardano-db-sync/blob/master/docker-compose.yml ) )
165
- can be used as a template for Atala Prism.
166
-
167
- About the blockchain to connect to, the following are some caveats:
168
-
169
- 1 . Atala Prism will integrate with the Byron Legacy Testnet for the time being
170
- to ease up the integration.
171
-
172
- 2 . Given \# 1 will slow down blockchain synchronization, integration testing will
173
- preferably have fixed always-running * cardano-node* and * cardano-db-sync*
174
- components.
175
-
176
- 3 . Eventually, \# 2 can be replaced by on-demand creation of a random testnet
177
- configuration.
178
- [ * shelley-testnet.sh* ] ( https://github.com/input-output-hk/cardano-node/blob/master/scripts/shelley-testnet.sh )
179
- can be of help on how to achieve this.
110
+ .
0 commit comments