Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 118 additions & 0 deletions docs/dev/dependencies.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# Dependencies

This document provides a visual representation of the Noble blockchain's modular architecture
and the dependencies between its various components.

## Module Dependency Graph

The diagram below shows the modules composing the Noble Core chain and their dependencies graph.
The modules are organized into three main categories:

- **Cosmos SDK**: Standard blockchain modules from the Cosmos SDK framework
- **Noble**: Custom modules specific to Noble's functionality
- **External**: Third-party modules integrated into Noble

Each arrow represents a dependency relationship, showing how modules depend on each other for functionality.

```mermaid
flowchart LR
subgraph CM[Cosmos SDK]
auth[auth]
authz[authz]
bank[bank]
consensus[consensus]
crisis[crisis]
evidence[evidence]
feegrant[feegrant]
params[params]
slashing[slashing]
staking[staking]
upgrade[upgrade]
end

subgraph Noble
authority[authority]
dollar[dollar]
forwarding[forwarding]
globalfee[globalfee]
orbiter[orbiter]
swap[swap]
wormhole[wormhole]
end

subgraph External
capability[capability]
ibc[ibc]
ica[interchainaccounts]
pfm[packetforwardingmiddleware]
ratelimit[ratelimit]
Comment thread
0xstepit marked this conversation as resolved.
transfer[ics20]

cctp[cctp]
ftf[fiat-tokenfactory]

aura[aura]

halo[halo]

hyperlane[hyperlane]
warp[warp]

florin[florin]
end

authority --> auth
authority --> bank

authz --> bank
authz --> auth

dollar --> warp
dollar --> wormhole
dollar --> auth
dollar --> bank

forwarding --> bank
forwarding --> transfer
forwarding --> auth

feegrant --> bank
feegrant --> auth

swap --> bank
swap --> auth

evidence --> staking
evidence --> slashing

ratelimit --> bank

staking --> bank
staking --> auth

slashing --> staking

halo --> bank
halo --> auth

aura --> bank

florin --> bank

cctp --> ftf
cctp --> bank

warp --> hyperlane
warp --> bank

hyperlane --> bank

transfer --> ibc
transfer --> bank
transfer --> auth

pfm --> bank
pfm --> transfer

orbiter --> bank
```
84 changes: 84 additions & 0 deletions docs/dev/interoperability.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Interoperability

This document illustrates Noble's interoperability architecture, showing how the chain
facilitates cross-chain interactions through multiple bridging protocols and abstraction layers.

## Noble's Complete Interoperability Stack

The first diagram shows Noble's entire interoperability architecture. Noble provides a comprehensive
interop stack that includes multiple bridge protocols and the Orbiter abstraction layer:

- **Bridge Protocols**: Direct access to various bridging solutions (IBC, CCTP, Hyperlane, Wormhole).
- **Orbiter**: Provides composable operations (actions like fee payment and swapping)
combined with forwarding capabilities.
- **Dual Access Patterns**: Users can either leverage Orbiter for enhanced composability
or interact directly with bridges

This architecture gives users flexibility since they can use Orbiter for complex workflows
or bypass it for simple transfers.

```mermaid
flowchart TB
s((sender))
r((recipient))

subgraph Orbiter
f[forwarding]
a[actions</br>fee payment, swap]
end

subgraph Bridges
wormhole[wormhole]
cctp[cctp]
ibc[ibc]
hyperlane[hyperlane]
end

subgraph Noble
Orbiter
Bridges
end

s --interoperability abstraction </br> with composability--> Orbiter

a --> f
f --> Bridges

s --direct interaction--> Bridges
Comment thread
0xstepit marked this conversation as resolved.
Outdated

Bridges --> r
```

## Orbiter's Hook-Based Architecture
Comment thread
MalteHerrmann marked this conversation as resolved.

The second diagram shows how Orbiter specifically implements programmable transfer hooks.
This is the core mechanism that enables Orbiter's composability features:

- **Before Transfer Hook**: Executes custom logic (fee payment, swapping, etc.) before
initiating the bridge transfer.
- **After Transfer Hook**: Handles post-transfer logic.
- **Bridge Integration**: Works seamlessly with all supported bridge protocols.
Comment thread
0xstepit marked this conversation as resolved.

This hook system is what allows Orbiter to provide a unified interface for complex
cross-chain operations that would otherwise require multiple separate transactions.

```mermaid
flowchart LR
s((sender))
r((recipient))

bth(before transfer hook)
ath(after transfer hook)

subgraph Bridges
ibc[ibc]
cctp[cctp]
wormhole[wormhole]
hyp[hyperlane]
end

s --> bth
bth --> Bridges
Bridges --> ath
ath --> r
```
64 changes: 64 additions & 0 deletions docs/dev/issuance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Issuance

This document shows the token issuance ecosystem on Noble, illustrating the relationship
between issuers, tokens, and the Noble modules that manage them.

## Token Issuance Flow

The diagram below shows how various issuers deploy different tokens on Noble and which
specialized modules manage each token type:

- **Issuers**: Real-world entities that mint and manage stablecoins.

- **Tokens**: The actual digital assets issued (USDC, USDN, EURe, etc.).

- **Modules**: Noble's specialized modules that handle the on-chain logic for each token type.

All token modules ultimately interact with the Cosmos SDK `bank` module for core token
Comment thread
0xstepit marked this conversation as resolved.
Outdated
functionality like transfers and balances.

```mermaid
flowchart TD
subgraph Issuers
m0[M^0]
circle[Circle]
monereum[Monereum]
hash[Hashnode]
ondo[Ondo]
Comment thread
0xstepit marked this conversation as resolved.
Outdated
end

subgraph tokens
usdn((USDN))
usdc((USDC))
eure((EURe))
usdy((USDY))
usyc((USYC))
end

subgraph modules
dollar[dollar]
ftf[fiat-tokenfactory]
aura[aura]
halo[halo]
florin[florin]
end

m0 --> usdn
circle --> usdc
monereum --> eure
hash --> usyc
ondo --> usdy


usdn --> dollar
usdc --> ftf
usdy --> aura
eure --> florin
usyc --> halo

dollar --> bank
ftf --> bank
aura --> bank
halo --> bank
florin --> bank
```
65 changes: 65 additions & 0 deletions docs/dev/security.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Security

This document outlines Noble's security architecture at different layers of the blockchain stack.

## Generic Security Architecture

The first diagram shows Noble's overall security model, illustrating the separation between
consensus, core protocol, and application layers:

```mermaid
flowchart LR
subgraph Consensus
bft[Validators]
end

subgraph Core
n[Nova module]
end

subgraph AppLayer
sc[Smart Contracts]
end

abci([ABCI 2.0])

bft --> abci
abci --> n

bft --> AppLayer
Comment thread
0xstepit marked this conversation as resolved.
```
Comment thread
0xstepit marked this conversation as resolved.

## Token Issuance Security

The second diagram focuses specifically on token issuance security, showing how different authorities control different tokens while validators secure the overall network:

```mermaid
flowchart LR
subgraph Validators
nmm[NMM]
end

subgraph Consensus
Validators
end

subgraph TA[Token A]
ipa[issuance properties]
end

subgraph TB[Token B]
ipb[issuance properties]
end

subgraph Core
authority
TA
TB
end

nmm -- maintenance --> Core
Validators -- validate blocks --> Core

authoritya[Authority A] -- controls --> TA
authorityb[Authority B] -- controls --> TB
Comment thread
0xstepit marked this conversation as resolved.
```
Comment thread
0xstepit marked this conversation as resolved.