> ## Documentation Index
> Fetch the complete documentation index at: https://docs.datafdn.org/llms.txt
> Use this file to discover all available pages before exploring further.

# 런타임 구성

> CDR SDK의 DATA Foundation API 엔드포인트, DKG 상태, 임계값 튜닝, 시스템 주소 및 Aeneid 런타임 관련 안내.

<Note>
  이 페이지에서는 기본 설정을 넘어서는 릴리스별 및 운영 관련 세부 사항을 다룹니다.
  먼저 [CDR 클라이언트 설정](/developers/cdr-sdk/setup)부터 시작하세요.
</Note>

## DKG 상태와 DATA Foundation API 엔드포인트

SDK는 두 개의 백엔드에서 상태를 읽습니다:

| 백엔드                          | 구성 방법          | 읽는 항목                                                   |
| ---------------------------- | -------------- | ------------------------------------------------------- |
| **EVM**                      | `publicClient` | CDR 컨트랙트 상태: vault, 수수료, `maxEncryptedDataSize`, 운영 임계값 |
| **DATA Foundation API REST** | `apiUrl`       | DKG 상태: 활성 라운드, 전역 공개 키, 임계값, 검증자, 증명(attestation)      |

`apiUrl`은 **필수** `CDRClient` 매개변수입니다. 이는 DATA Foundation API REST 엔드포인트의 베이스 URL이며, `observer`는 모든 DKG 읽기에 이를 사용합니다.

```typescript theme={null}
const client = new CDRClient({
  network: "testnet",
  publicClient,
  walletClient,
  apiUrl: "http://172.192.41.96:1317",
});
```

프로덕션 배포의 경우, 공유 엔드포인트가 아닌 본인의 Story 노드의 REST 게이트웨이를 `apiUrl`로 지정하세요. 네트워크별 값은 [DATA Foundation API REST 엔드포인트](/developers/cdr-sdk/setup#data-foundation-api-rest-endpoint)를 참고하세요.

<Note>
  `observer`는 안정적인 Active 및 Ended 단계의 라운드에 대해 라운드 키 기반 DKG
  스냅샷을 캐시하며, 진행 중인 요청을 중복 제거합니다. 활성 라운드 자체는
  언제든 전환될 수 있기 때문에 항상 다시 가져옵니다.
</Note>

## 임계값 튜닝

기본적으로 SDK는 부분 복호화를 결합할 때 네트워크 자체의 DKG 임계값을 사용합니다. 선택적 매개변수 `minThresholdRatio`(범위 `[0, 1]`)를 통해 기준을 높일 수 있습니다:

```typescript theme={null}
const client = new CDRClient({
  network: "testnet",
  publicClient,
  walletClient,
  apiUrl: "http://172.192.41.96:1317",
  minThresholdRatio: 0.67,
});
```

실효 임계값은 `max(network.threshold, ceil(participants * minThresholdRatio))`가 됩니다.

<Warning>
  `1`을 초과하는 값은 참여자보다 더 많은 부분 복호화를 요구하므로,
  `collectPartials` / `accessCDR`이 영원히 타임아웃됩니다. SDK는 이를 거부합니다.
</Warning>

## 컨트랙트 주소

현재 Aeneid 릴리스는 다음과 같은 핵심 시스템 주소를 사용합니다:

| 컨트랙트 | 주소                                           |
| ---- | -------------------------------------------- |
| DKG  | `0xCcCcCC0000000000000000000000000000000004` |
| CDR  | `0xCcCcCC0000000000000000000000000000000005` |

SDK는 이미 이러한 주소를 알고 있습니다. DATA Foundation 라이선스 게이팅 조건 컨트랙트에 대해서는 [DATA Foundation 라이선스 읽기 패턴의 작동 방식](/developers/cdr-sdk/ip-asset-vaults#how-the-data-foundation-license-read-pattern-works)을 참고하세요.

## 릴리스 상태 및 가용성

* Aeneid는 SDK의 현재 공개 **테스트넷** 릴리스입니다.
* 기밀성은 DKG 임계값과 CDR 개요에서 설명된 검증자 / 엔클레이브 신뢰
  가정에 의존합니다.
* 가용성은 타임아웃 전에 응답하는 검증자가 충분한지에 따라 결정됩니다. 읽기가
  임계값에 도달하지 못하면, 재시도하거나 `timeoutMs`를 늘리세요.
* DKG 읽기는 `apiUrl` DATA Foundation API 엔드포인트가 올바르고 접근 가능한지에
  따라 결정됩니다. 프로덕션 사용 시에는 신뢰할 수 있는 노드를 지정하세요.

## 현재 릴리스 노트

* DATA Foundation 라이선스 게이팅 vault는 여전히 수동 조건 인코딩이 필요합니다.
* CDR SDK는 IP를 WIP로 자동 래핑하거나, 라이선스 민팅을 위해 WIP를
  자동 승인하지 않습니다.
* `accessCDR()`은 매개변수가 생략된 경우 임시 키페어를 자동으로 생성하고
  `threshold`를 조회할 수 있습니다.
* `createVault` / `readVault` / `createFileVault` / `readFileVault`는
  상위 레벨 별칭으로 사용할 수 있습니다.
* `getRegisteredValidators()`는 등록이 완전히 비준된(`status = Finalized`)
  검증자만 포함합니다.
* `accessCDR()` 및 `downloadFile()`의 경우 `timeoutMs: 120_000`이 좋은
  시작점입니다.
