Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
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
20 changes: 19 additions & 1 deletion .gitbook/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -1205,7 +1205,25 @@
"ko/infra/set-up-keyring",
"ko/infra/join-a-network",
"ko/infra/cosmovisor",
"ko/infra/upgrade-node"
"ko/infra/upgrade-node",
{
"group": "메인넷 검증자",
"pages": [
"ko/infra/validator-mainnet/index",
"ko/infra/validator-mainnet/peggo",
"ko/infra/validator-mainnet/canonical-chain-upgrade"
]
},
{
"group": "테스트넷 검증자",
"pages": [
"ko/infra/validator-testnet/index",
"ko/infra/validator-testnet/peggo"
]
},
"ko/infra/public-endpoints",
"ko/infra/premium-endpoints",
"ko/infra/archival-setup"
]
},
"ko/faq",
Expand Down
134 changes: 134 additions & 0 deletions .gitbook/ko/infra/archival-setup.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
---
title: 아카이벌 설정
---

이 가이드는 아카이벌 데이터를 제공하는 노드 플릿을 생성하고 게이트웨이를 사용하여 연결하는 과정을 안내합니다.

## 아키텍처

아카이벌 데이터 제공을 더 접근하기 쉽게 하기 위해 데이터를 더 작은 세그먼트로 분할합니다. 이러한 세그먼트는 `s3://injective-snapshots/mainnet/subnode`에 저장됩니다.

| Snapshot Dir | 높이 범위 | Injective 버전 | 권장 디스크 크기 |
| ------------ | ------------ | ----------------- | --------------------- |
| `/0073` | 0 – 73M | v1.12.1 | 42 TiB |
| `/6068` | 60M – 68M | v1.12.1 | 7 TiB |
| `/7380` | 73M – 80M | v1.12.1 | 7 TiB |
| `/8088` | 80M – 88M | v1.13.3 | 7 TiB |
| `/8896` | 88M – 96M | v1.13.3 | 7 TiB |
| `/8898` | 88M – 98M | v1.13.3 | 7 TiB |
| `/98106` | 98M – 106M | v1.13.3 | 7 TiB |
| `/98107` | 98M – 107M | v1.14.0 | 7.5 TiB |
| `/66101` | 66M – 101M | v1.14.0 | 27 TiB |
| `/105116` | 105M – 116M | v1.15.0 | 7.5 TiB |
| `/113127` | 113M – 127M | v1.15.0 | 11 TiB |
| `/119143` | 119M – 143M | v1.17.0 | 16 TiB |
| `/138150` | 138M – 150M | v1.17.2 | 5.8 TiB |

이러한 세그먼트는 블록 범위에 따라 쿼리를 적절한 노드로 라우팅하는 애그리게이터 프록시인 게이트웨이를 통해 연결됩니다.

![Archival Architecture](./assets/archival_architecture.jpg)

## 시스템 요구 사항

아카이벌 데이터 슬라이스를 호스팅하는 각 노드는 다음 최소 요구 사항을 충족해야 합니다.

| 구성 요소 | 최소 사양 | 참고 |
| ----------- | --------------------- | ---------------------------------------------------------- |
| **CPU** | AMD EPYC™ 9454P | 48 코어 / 96 스레드 |
| **메모리** | 128 GB DDR5 ECC | DDR5-5200 MHz 이상, 데이터 무결성을 위한 ECC |
| **스토리지** | 7 – 40 TB NVMe Gen 4 | PCIe 4.0 드라이브, 단일 드라이브 또는 RAID-0 어레이 가능 |

## 설정 단계
### 아카이벌 세그먼트를 호스팅하는 각 노드에서:
#### 1. 설정에 필요한 히스토리가 있는 아카이벌 세그먼트를 다운로드합니다:
```bash
aws s3 cp --recursive s3://injective-snapshots/mainnet/subnode/<SNAPSHOT_DIR> $INJ_HOME
```

#### 2. 위 표를 기반으로 적절한 injective 바이너리 또는 이미지 태그를 다운로드하거나 설정합니다.

#### 3. config 폴더를 생성합니다:
```bash
injectived init $MONIKER --chain-id injective-1 --home $INJ_HOME --overwrite
```
#### 4. app.toml 파일에서 프루닝을 비활성화하고 config.toml 파일에서 p2p를 차단하고 로그 레벨을 error로 설정합니다.

이렇게 하면 데이터가 프루닝되지 않고 노드가 중지된 상태로 유지됩니다. 로그 레벨을 error로 설정하면 디스크 작업이 줄어들고 성능이 향상됩니다.

```bash
# app.toml에서 프루닝 비활성화
sed -i 's/^pruning *= *.*/pruning = "nothing"/' $INJ_HOME/config/app.toml

# config.toml에서 p2p 비활성화 및 빈 블록 생성 비활성화
awk '
BEGIN { section = "" }
/^\[/ {
section = $0
}
section == "[p2p]" {
if ($1 ~ /^laddr/) $0 = "laddr = \"tcp://0.0.0.0:26656\""
if ($1 ~ /^max_num_inbound_peers/) $0 = "max_num_inbound_peers = 0"
if ($1 ~ /^min_num_inbound_peers/) $0 = "min_num_inbound_peers = 0"
if ($1 ~ /^pex/) $0 = "pex = false"
if ($1 ~ /^seed_mode/) $0 = "seed_mode = false"
}
section == "[consensus]" {
if ($1 ~ /^create_empty_blocks/) $0 = "create_empty_blocks = false"
}
{ print }
' $INJ_HOME/config/config.toml > $INJ_HOME/config/config.tmp && mv $INJ_HOME/config/config.tmp $INJ_HOME/config/config.toml

# 로그 레벨을 error로 설정 (디스크 쓰기 감소 = 성능 향상)
sed -i 's/^log_level *= *.*/log_level = "error"/' $INJ_HOME/config/app.toml
```

#### 5. 노드를 실행합니다:
```bash
injectived start --home $INJ_HOME
```

### 게이트웨이 구성

#### 1. 게이트웨이 저장소를 클론합니다:
```bash
git clone https://github.com/decentrio/gateway
```
#### 2. 게이트웨이를 빌드합니다:
```bash
make build
```
#### 3. 구성 파일을 생성합니다:
```yaml
upstream:
# 예시: 노드 1은 블록 0-80M을 보유하고 노드 2는 블록 80-88M을 보유
- rpc: "http://$NODE1:$RPC_PORT"
grpc: "$NODE1:$GRPC_PORT"
api: "http://$NODE1:$API_PORT"
blocks: [0,80000000]
- rpc: "http://$NODE2:$RPC_PORT"
grpc: "$NODE2:$GRPC_PORT"
api: "http://$NODE2:$API_PORT"
blocks: [80000000,88000000]

# <다른 노드들>

# 아카이벌 팁, 최신 x 블록을 제공하며 일반적으로 프루닝된 노드로 설정
- rpc: "http://$PRUNED_NODE:$RPC_PORT"
grpc: "$PRUNED_NODE:$GRPC_PORT"
api: "http://$PRUNED_NODE:$API_PORT"
blocks: [1000]


ports:
rpc: $RPC_PORT
api: $API_PORT
grpc: $GRPC_PORT
# 현재 비활성화하려면 0으로 설정
jsonrpc: 0
jsonrpc_ws: 0

```
#### 4. 게이트웨이를 실행합니다:
```bash
gateway start --config $CONFIG_FILE
```
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 23 additions & 0 deletions .gitbook/ko/infra/premium-endpoints.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
description: >-
개발자로서 dApp을 구동하는 전용 노드 또는 인덱싱 솔루션에 관심이 있을 수 있습니다.
title: 프리미엄 엔드포인트
---

다음은 프라이빗 Injective 인프라 서비스를 제공하는 외부 제공자 목록입니다. 자세한 정보는 아래 웹사이트를 클릭하세요:

* [QuickNode](https://www.quicknode.com/chains/inj)
* [CryptoCrew](https://forms.gle/Aa2XYBB4sLxzHNzc6)
* [Imperator](https://www.imperator.co/products/dedicated-and-rpc-nodes#get-started)
* [AllNodes](https://injective.publicnode.com/)
* [NowNodes](https://nownodes.io/injective-inj)
* [RockX](https://access.rockx.com/product/injective-blockchain-api-for-web3-builders)

| 제공자 | Chain | Indexer |
|-------------------|-------|---------|
| QuickNode | [x] | [ ]
| CryptoCrew | [x] | [x] |
| Imperator | [x] | [x] |
| AllNodes | [x] | [x] |
| NowNodes | [x] | [ ] |
| RockX | [x] | [ ] |
55 changes: 55 additions & 0 deletions .gitbook/ko/infra/public-endpoints.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
title: 퍼블릭 엔드포인트
---

<Callout icon="info" color="#07C1FF" iconType="regular">
높은 사용량/트래픽이 있는 애플리케이션의 경우 프로덕션 환경에서 이를 사용하는 것을 **권장하지 않습니다**. 수천 명의 개발자가 퍼블릭 인프라를 사용하고 있으며 100% 가동 시간과 안정성을 보장할 수 없습니다.
</Callout>

## 메인넷

| 서비스 | 주소 |
| ---------------- | ------------------------------------------------------------- |
| Chain Swagger | https://sentry.lcd.injective.network/swagger/#/ |
| Chain LCD | https://sentry.lcd.injective.network:443 |
| Chain RPC | https://sentry.tm.injective.network:443 |
| Chain WebSocket | wss://sentry.tm.injective.network:443/websocket |
| Chain Streamer | sentry.chain.stream.injective.network:443 |
| Chain gRPC | sentry.chain.grpc.injective.network:443 |
| Chain gRPC-Web | https://sentry.chain.grpc-web.injective.network:443 |
| EVM JSON-RPC | https://sentry.evm-rpc.injective.network/ |
| EVM WebSocket | wss://sentry.evm-ws.injective.network |
| Indexer Swagger | https://sentry.exchange.grpc-web.injective.network/swagger/#/ |
| Indexer gRPC | sentry.exchange.grpc.injective.network:443 |
| Indexer gRPC-Web | https://sentry.exchange.grpc-web.injective.network:443 |
| Indexer EventProvider | k8s.global.mainnet.events.grpc.injective.network:443 |
| Hub | https://injhub.com/ |
| Explorer | https://explorer.injective.network/ |
| Faucet | https://inj.supply/ |
| Status | https://uptime.com/statuspage/status.injective.network |

<Info>
Chain ID, 컨트랙트 및 추가 제공자를 포함한 더 많은 EVM 네트워크 세부 정보는 [EVM 네트워크 정보](/developers-evm/network-information)를 참조하세요.
</Info>

## 테스트넷

| 서비스 | 주소 |
| ---------------- | --------------------------------------------------------------------- |
| Chain Swagger | https://testnet.sentry.lcd.injective.network/swagger/ |
| Chain RPC | https://testnet.sentry.tm.injective.network:443 |
| Chain LCD | https://testnet.sentry.lcd.injective.network:443 |
| Chain WebSocket | wss://testnet.sentry.tm.injective.network:443/websocket |
| Chain Streamer | testnet.sentry.chain.stream.injective.network:443 |
| Chain gRPC | testnet.sentry.chain.grpc.injective.network:443 |
| Chain gRPC-Web | https://testnet.sentry.chain.grpc-web.injective.network:443 |
| EVM JSON-RPC | https://k8s.testnet.json-rpc.injective.network/ |
| EVM WebSocket | wss://k8s.testnet.ws.injective.network/ |
| Indexer Swagger | https://testnet.sentry.exchange.grpc-web.injective.network/swagger/#/ |
| Indexer gRPC | testnet.sentry.exchange.grpc.injective.network:443 |
| Indexer gRPC-Web | https://testnet.sentry.exchange.grpc-web.injective.network:443 |
| Indexer EventProvider | k8s.global.testnet.events.grpc.injective.network:443 |
| Hub | https://testnet.hub.injective.network/ |
| Explorer | https://testnet.explorer.injective.network/ |
| Faucet | https://testnet.faucet.injective.network/ |
| Status | https://uptime.com/statuspage/testnet.status.injective.network |
67 changes: 67 additions & 0 deletions .gitbook/ko/infra/validator-mainnet/canonical-chain-upgrade.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
title: Canonical Chain 업그레이드
---

## 릴리스 버전 확인

### Github의 릴리스

Docker를 통해 `injectived` 또는 `peggo` 버전 번호를 확인하려면
[`verify-injective-release`](https://github.com/injective-dev/snippets-inj/tree/main/verify-injective-release) 코드 스니펫의 지침을 따르세요.

이것은 Linux가 아닌 운영 체제를 사용하면서
각 릴리스의 바이너리를 독립적으로 확인하고 싶을 때 유용합니다.

예를 들어, `v1.16.1`의 경우 다음과 같은 출력이 생성되어야 합니다:

```text
injectived version
Version v1.16.1 (8be67e82d)
Compiled at 20250802-1910 using Go go1.23.9 (amd64)
peggo version
Version v1.16.1 (8be67e82d)
Compiled at 20250802-1913 using Go go1.23.9 (amd64)
```

### Docker의 릴리스

각 바이너리에 단일 명령만 필요하므로 더 간단합니다.

`injectived`의 경우 다음 명령을 사용하세요:

```shell
docker run -it --rm injectivelabs/injective-core:v1.16.1 injectived version
```

이것은 다음과 유사한 출력을 생성해야 합니다:

```text
Version v1.16.1 (8be67e8)
Compiled at 20250802-1909 using Go go1.23.9 (arm64)
```

`peggo`의 경우 다음 명령을 사용하세요:

```shell
docker run -it --rm injectivelabs/injective-core:v1.16.1 peggo version
```

이것은 다음과 유사한 출력을 생성해야 합니다:

```text
Version v1.16.1 (8be67e8)
Compiled at 20250802-1911 using Go go1.23.9 (arm64)
```

위 명령에서 `v1.16.1`을 원하는 Injective 릴리스 버전 번호로 교체해야 합니다.

### 일치 여부 확인

위 명령의 출력에는
버전 번호(예: `v1.16.1`) 외에도 다음이 포함됩니다:

- 바이너리 릴리스 해시(예: `8be67e82d`)
- 컴파일 타임스탬프(예: `20250802-1910`)
- 컴파일러(예: `Go go1.23.9 (amd64)`)

Github의 [Injective chain releases](https://github.com/InjectiveLabs/injective-chain-releases/releases) 페이지에 명시된 값과 **일치**하는지 확인할 수 있습니다.
Loading