Skip to content

Commit 8a06336

Browse files
committed
fixup: formatting
1 parent bed958b commit 8a06336

File tree

2 files changed

+75
-73
lines changed

2 files changed

+75
-73
lines changed

main/guides/integration/chain-integration.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,21 @@ The chain can also be accessed via JavaScript using the [`cosmjs` library](https
3030
## Building `agd`
3131

3232
The `agd` command line tool can be built by running the commands as below:
33+
3334
```sh
3435
git clone -b community-dev https://github.com/Agoric/agoric-sdk
3536
cd agoric-sdk
3637
SKIP_DOWNLOAD=false ./bin/agd build
3738
export PATH=$PWD/bin:$PATH
3839
```
40+
3941
To confirm that `agd` is in your `$PATH`, execute
42+
4043
```
4144
agd version --long
4245
```
43-
Unlike typical cosmos-sdk chains where the daemon is a single executable file, Agoric's use of cosmos-sdk depends
46+
47+
Unlike typical cosmos-sdk chains where the daemon is a single executable file, Agoric's use of cosmos-sdk depends
4448
on many components of agoric-sdk at runtime. Copying `agd` to `/usr/local/bin` or the like is unlikely to produce
4549
a working installation. For more detail, see [#7825](https://github.com/Agoric/agoric-sdk/issues/7825).
4650

Lines changed: 70 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,117 +1,115 @@
11
# How Orchestration Works
22

3-
Blockchain orchestration relies on protocols and mechanisms that allow
4-
blockchains to communicate and transact with each other securely and
3+
Blockchain orchestration relies on protocols and mechanisms that allow
4+
blockchains to communicate and transact with each other securely and
55
efficiently. The primary objectives of blockchain orchestration are:
66

7-
- **Interoperability:** Enabling different blockchain networks to interact
7+
- **Interoperability:** Enabling different blockchain networks to interact
88
and transact with one another.
9-
- **Scalability:** Facilitating the collaboration of multiple blockchains
9+
- **Scalability:** Facilitating the collaboration of multiple blockchains
1010
without compromising performance.
11-
- **Security:** Ensuring that cross-chain transactions are secure and
11+
- **Security:** Ensuring that cross-chain transactions are secure and
1212
trustworthy.
1313

14-
To achieve these goals, several foundational technologies and protocols
15-
have been developed, with the
16-
[Inter-Blockchain Communication (IBC) protocol](https://ibcprotocol.org/)
14+
To achieve these goals, several foundational technologies and protocols
15+
have been developed, with the
16+
[Inter-Blockchain Communication (IBC) protocol](https://ibcprotocol.org/)
1717
being one of the most prominent.
1818

1919
### Inter-Blockchain Communication (IBC)
2020

21-
The [Inter-Blockchain Communication (IBC) protocol](https://ibcprotocol.org/)
22-
is often compared to the TCP/IP protocol of the internet. Just as TCP/IP
23-
enables different computer networks to communicate across the internet,
21+
The [Inter-Blockchain Communication (IBC) protocol](https://ibcprotocol.org/)
22+
is often compared to the TCP/IP protocol of the internet. Just as TCP/IP
23+
enables different computer networks to communicate across the internet,
2424
IBC allows blockchains to communicate securely with each other.
2525

2626
#### How IBC Works
2727

28-
IBC operates on a straightforward premise: by adhering to a common set
29-
of communication protocols, blockchains can securely transfer data and
30-
tokens between one another. Here's a high-level overview of how IBC
28+
IBC operates on a straightforward premise: by adhering to a common set
29+
of communication protocols, blockchains can securely transfer data and
30+
tokens between one another. Here's a high-level overview of how IBC
3131
achieves this:
3232

33-
- **Light Client Verification:** Each blockchain maintains a
34-
[light client](https://github.com/cosmos/ibc-go/blob/34628eb0c1ca0ca9721c6e3923cf048e1172b8b0/docs/docs/03-light-clients/01-developer-guide/01-overview.md)
35-
of the other blockchain. A light client is a simplified version of a
36-
blockchain client that only retains enough information to verify
37-
transactions and proofs, without needing to store the entire blockchain
33+
- **Light Client Verification:** Each blockchain maintains a
34+
[light client](https://github.com/cosmos/ibc-go/blob/34628eb0c1ca0ca9721c6e3923cf048e1172b8b0/docs/docs/03-light-clients/01-developer-guide/01-overview.md)
35+
of the other blockchain. A light client is a simplified version of a
36+
blockchain client that only retains enough information to verify
37+
transactions and proofs, without needing to store the entire blockchain
3838
history.
39-
- **Relayer:** A [relayer](https://github.com/cosmos/relayer) is an
40-
off-chain process that listens for transactions on one blockchain and
41-
relays them to another. The relayer facilitates communication between
42-
blockchains but does not have any special permissions or abilities—it
39+
- **Relayer:** A [relayer](https://github.com/cosmos/relayer) is an
40+
off-chain process that listens for transactions on one blockchain and
41+
relays them to another. The relayer facilitates communication between
42+
blockchains but does not have any special permissions or abilities—it
4343
merely passes messages between chains.
44-
- **IBC Handshake:** Before two blockchains can communicate, they perform
45-
a handshake, establishing a trusted channel between them. This involves
44+
- **IBC Handshake:** Before two blockchains can communicate, they perform
45+
a handshake, establishing a trusted channel between them. This involves
4646
verifying each other's consensus state using light clients.
47-
- **Packet Transfer:** Once the connection is established, IBC allows
48-
the transfer of data packets. These packets can represent tokens, smart
49-
contract commands, or other data. The receiving blockchain uses light
50-
client verification to ensure the data is valid and hasn’t been tampered
47+
- **Packet Transfer:** Once the connection is established, IBC allows
48+
the transfer of data packets. These packets can represent tokens, smart
49+
contract commands, or other data. The receiving blockchain uses light
50+
client verification to ensure the data is valid and hasn’t been tampered
5151
with.
52-
- **Finality and Acknowledgement:** After a packet is successfully
53-
processed by the receiving blockchain, an acknowledgment is sent back
52+
- **Finality and Acknowledgement:** After a packet is successfully
53+
processed by the receiving blockchain, an acknowledgment is sent back
5454
to the originating blockchain, confirming the transaction's completion.
5555

56-
The modularity of the IBC protocol allows it to be adapted for various
57-
use cases and blockchain types, making it a versatile tool for blockchain
56+
The modularity of the IBC protocol allows it to be adapted for various
57+
use cases and blockchain types, making it a versatile tool for blockchain
5858
orchestration.
5959

6060
### Interchain Accounts (ICA)
6161

62-
[Interchain Accounts (ICA)](https://github.com/cosmos/ibc/blob/main/spec/app/ics-027-interchain-accounts/README.md)
63-
is a feature built on top of IBC that allows one blockchain (the
64-
controller chain) to control an account on another blockchain (the
65-
host chain). This enables seamless cross-chain operations and automation,
62+
[Interchain Accounts (ICA)](https://github.com/cosmos/ibc/blob/main/spec/app/ics-027-interchain-accounts/README.md)
63+
is a feature built on top of IBC that allows one blockchain (the
64+
controller chain) to control an account on another blockchain (the
65+
host chain). This enables seamless cross-chain operations and automation,
6666
allowing for complex interactions between blockchains.
6767

6868
#### How ICA Works
6969

70-
The ICA protocol enables a controller chain to request the creation of an
71-
account on a host chain. The host chain creates the account and delegates
70+
The ICA protocol enables a controller chain to request the creation of an
71+
account on a host chain. The host chain creates the account and delegates
7272
control of it to the controller chain.
7373

74-
- **Account Creation:** The controller chain (e.g., Agoric) requests an
75-
account on the host chain (e.g., Osmosis) using the IBC protocol. The
76-
host chain then creates the account and delegates control to the
74+
- **Account Creation:** The controller chain (e.g., Agoric) requests an
75+
account on the host chain (e.g., Osmosis) using the IBC protocol. The
76+
host chain then creates the account and delegates control to the
7777
controller chain.
78-
79-
- **Reification in Agoric:** When the controller chain is Agoric, control
80-
of the account is reified as a JavaScript object. In this case, the
81-
Agoric chain reifies host chains as Chain objects within its Orchestration
82-
API. For example, `const chain = orch.getChain('osmosis')` creates an
83-
object that represents the host chain Osmosis. A call to
84-
`chain.makeAccount()` results in the Agoric chain acting as the controller
85-
and requesting the creation of an Interchain Account (ICA) on the Osmosis
86-
chain. This operation produces an `OrchestrationAccount` object, which
78+
- **Reification in Agoric:** When the controller chain is Agoric, control
79+
of the account and Chain objects within its Orchestration
80+
API are reified as JavaScript objects. For example,
81+
```
82+
const chain = orch.getChain('osmosis')
83+
```
84+
creates an object that represents the host chain Osmosis. A call to
85+
`chain.makeAccount()` results in the Agoric chain acting as the controller
86+
and requesting the creation of an Interchain Account (ICA) on the Osmosis
87+
chain. This operation produces an `OrchestrationAccount` object, which
8788
provides access to control the ICA.
88-
89-
- **Access Control:** Whoever has access to the JavaScript object can
90-
control the account. In Agoric's architecture, access to this object is
91-
only passed to authorized parties. In particular, the party that called
92-
`chain.makeAccount()` gets access to it, ensuring secure access
89+
- **Access Control:** Whoever has access to the JavaScript object can
90+
control the account. In Agoric's architecture, access to this object is
91+
only passed to authorized parties. In particular, the party that called
92+
`chain.makeAccount()` gets access to it, ensuring secure access
9393
delegation.
94-
95-
- **Transaction Execution:** The controller chain (e.g., Agoric) can now
96-
send IBC messages to execute transactions on the host chain (e.g., Osmosis)
97-
as if it were a local user. This includes transferring tokens, interacting
94+
- **Transaction Execution:** The controller chain (e.g., Agoric) can now
95+
send IBC messages to execute transactions on the host chain (e.g., Osmosis)
96+
as if it were a local user. This includes transferring tokens, interacting
9897
with smart contracts, and performing other blockchain operations.
99-
100-
- **Automation:** Using ICA, the controller chain can automate operations
101-
on the host chain. For instance, Agoric can programmatically manage assets
98+
- **Automation:** Using ICA, the controller chain can automate operations
99+
on the host chain. For instance, Agoric can programmatically manage assets
102100
on another chain, automating workflows that span multiple blockchains.
103101

104102
### Why Agoric's Approach Stands Out
105103

106-
Agoric's unique programming model, which is already distributed and
107-
asynchronous, makes it particularly well-suited for Interchain Accounts.
108-
When contracts on Agoric interact, the system is designed to handle cases
109-
where the other contract may reside on a remote machine or another
110-
blockchain. This inherent architecture allows Agoric to seamlessly control
111-
and manage Interchain Accounts, further enhancing the orchestration
104+
Agoric's unique programming model, which is already distributed and
105+
asynchronous, makes it particularly well-suited for Interchain Accounts.
106+
When contracts on Agoric interact, the system is designed to handle cases
107+
where the other contract may reside on a remote machine or another
108+
blockchain. This inherent architecture allows Agoric to seamlessly control
109+
and manage Interchain Accounts, further enhancing the orchestration
112110
capabilities.
113111

114-
By leveraging ICA, blockchain orchestration becomes more flexible and
115-
powerful, enabling direct, programmable interactions between blockchains.
116-
This unlocks a wide range of possibilities, from decentralized finance
112+
By leveraging ICA, blockchain orchestration becomes more flexible and
113+
powerful, enabling direct, programmable interactions between blockchains.
114+
This unlocks a wide range of possibilities, from decentralized finance
117115
(DeFi) to supply chain management and beyond.

0 commit comments

Comments
 (0)