Nostr WoT

Документация

Всё, что нужно для интеграции Web of Trust в ваше приложение.

Быстрый старт

Начните работу с Web of Trust за несколько минут.

Запросы к Oracle из браузера или с сервера

Oracle v0.3.0 поддерживает стандартные запросы fetch. Используйте полные публичные ключи из 64 шестнадцатеричных символов. Расширение и SDK не требуются.

Запросить расстояние по подпискам

typescript
async function getFollowDistance(from: string, to: string) {
  const query = new URLSearchParams({ from, to, max_hops: "2" });
  const response = await fetch(
    "https://wot-oracle.mappingbitcoin.com/distance?" + query
  );
  if (!response.ok) throw new Error("Oracle HTTP " + response.status);
  const data = await response.json();
  return data.hops as number | null;
}

// Replace with real public keys before querying.
const hops = await getFollowDistance("a".repeat(64), "b".repeat(64));
console.log(hops === null ? "No indexed path within 2 hops" : hops);

Число переходов: 0 = вы сами, 1 = прямая подписка, 2 = подписка пользователя, на которого вы подписаны. Результат null означает, что в индексированном графе не найден путь в пределах запрошенной глубины. Охват зависит от настроенных реле. Расширение обеспечивает подписание и идентификацию; оно не отвечает на запросы к графу.

Сервер (с Oracle API)

Для серверных приложений используйте REST API Oracle. Расширение не требуется.

Включить публичные сведения о заглушении

javascript
const from = "a".repeat(64); // Replace with source pubkey
const to = "b".repeat(64); // Replace with target pubkey
const query = new URLSearchParams({ from, to, max_hops: "3" });
const response = await fetch(
  "https://wot-oracle.mappingbitcoin.com/trust?" + query
);
if (!response.ok) throw new Error("Oracle HTTP " + response.status);
const { follow_distance, public_mute_evidence } = await response.json();
console.log(follow_distance.hops, follow_distance.path_count);
console.log(public_mute_evidence.source_mutes_target);
console.log(public_mute_evidence.source_mute_list_known);

Расстояние по подпискам и публичные наблюдения заглушения kind-10000 — независимые сведения. API не объединяет их в числовую оценку и не расшифровывает приватные записи заглушения. Неизвестные списки заглушения и списки без публичных записей — разные состояния. Явно задайте правила своего приложения.

Использование cURL

терминал
$curl --fail-with-body "https://wot-oracle.mappingbitcoin.com/health"
$curl --fail-with-body "https://wot-oracle.mappingbitcoin.com/ready"

Совместимость SDK

Опубликованная версия @nostr-wot/[email protected] использует устаревшие удалённые эндпоинты и поля ответа, которых нет в Oracle v0.3.0. Удалённые запросы расстояния через SDK могут вернуть null после 404: не считайте это подтверждённым результатом графа. Для этого Oracle используйте приведённые выше примеры fetch.

Пакеты SDK для данных, реле и идентификации остаются полезными независимо друг от друга. Запросы к локальному графу и интеграция React описаны в проверенных примерах SDK. useTrustScore не входит в опубликованный API WoT 1.0.

Сборка из исходного кода

Клонируйте репозиторий и соберите локально для разработки или проверки кода.

терминал
$git clone https://github.com/nostr-wot/nostr-wot-extension.git
$cd nostr-wot-extension && npm install && npm run build

Перейдите на chrome://extensions, включите Режим разработчика, нажмите «Загрузить распакованное» и выберите папку dist/.