Skip to content

Latest commit

 

History

History
174 lines (127 loc) · 7.42 KB

README_ru.md

File metadata and controls

174 lines (127 loc) · 7.42 KB

Фото Алексея Навального

«Все, что нужно для торжества зла, — это бездействие добрых людей»

Алексей Навальный, Российский оппозиционный политик, основатель Фонда Борьбы с Коррупцией, последовательный противник Владимира Путина и его режима.

Go Wasabi RPC Client

GoDoc License

Wasabi Gopher

Реализация клиента для взаимодействия с WasabiWallet через RPC на языке программирования Go.

Вы можете использовать этот клиент для взаимодействия с WasabiWallet через RPC. Текущая редакция клиента поддерживает все методы, которые используются в WasabiWallet в основной ветке репозитория. Это означает что некоторые методы еще не доступны в текущем релизе кошелька и отчасти отсутствуют в документации к RPC на сайте WasabiWallet.

Клиент можно использовать с кошельком WasabiWallet, как запущенным в режиме GUI, так и в режиме headless daemon.

Ссылки на ресурсы WasabiWallet:

¹ - Документация к WasabiWallet на GitHub, содержит документацию ко всем методам RPC, в том числе и тем, которые еще не доступны в релизе кошелька. Такие методы описаны в правках, которые находятся в разделе пулл-реквестов. Документацию к таким методам вы можете найти через поиск по репозиторию. ² - Документация к RPC на сайте WasabiWallet, содержит документацию только к методам, которые доступны в текущем релизе кошелька.

Установка WasabiWallet.

Вариант 1: Установка кошелька из текущего релиза:

Вариант 2: Сборка кошелька из исходников и запуск в режиме демона в Docker-контейнере на базе debian:bookworm-20240211:

# Dockerfile for wasabi-wallet

FROM debian:bookworm-20240211 AS wallet

ENV COMMIT_HASH 848df269f1021bacc5d7d85e683ef4384a87cde6

RUN apt-get update && apt-get install -y \
    wget \
    software-properties-common \
    netcat-openbsd \
    curl \
    gnupg2 \
    git \
    libevent-2.1-7 && \
    wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \
    dpkg -i packages-microsoft-prod.deb && \
    rm packages-microsoft-prod.deb && \
    apt-get update && apt-get install -y \
    apt-transport-https \
    dotnet-sdk-8.0 && \
    apt-get clean && rm -rf /var/lib/apt/lists/* /var/cache/apt/*

RUN mkdir -p /wasabi/data

ENV DOTNET_CLI_TELEMETRY_OPTOUT=1

RUN git clone --single-branch --branch=master https://github.com/zkSNACKs/WalletWasabi.git \
    && cd WalletWasabi \
    && git checkout $COMMIT_HASH 

RUN cd /WalletWasabi/WalletWasabi.Fluent.Desktop && dotnet build && rm -rf ~/.nuget ~/.local

WORKDIR /WalletWasabi/WalletWasabi.Daemon

CMD ["dotnet", "run", "--jsonrpcserverenabled=true", "--enablegpu=false", "--datadir=\"/wasabi/data\"", "--network=testnet"]

Подробная информация о параметрах запуска кошелька доступна по ссылке.

Сборка образа и запуск контейнера с кошельком:

docker build --target wallet -t wasabi_wallet .

docker run -d -p 37128:37128/tcp --name wasabi_container wasabi_wallet

Проверка логов кошелька:

docker logs -f wasabi_container

Использование нашего клиента.

Загрузка клиента:

go get -u github.com/acfnv/go-wasabi-rpc-client

Пример использования:

package main

import (
	"flag"
	"fmt"
	"log"
	"net/http"
	"time"
	
	"github.com/acfnv/go-wasabi-rpc-client"
)

var (
	rpcHost     = flag.String("rpc_host", "127.0.0.1", "Host of the wasabi rpc server.")
	rpcPort     = flag.Int("rpc_port", 37128, "Port of the wasabi rpc server.")
)

func main() {
	flag.Parse()
	
	// Определяем конфигурацию для подключения к WasabiWallet.
	config := wasabi.Config{
		Host: *rpcHost,
		Port: *rpcPort,
	}
	
	// Создаем клиент для взаимодействия с WasabiWallet.
	client, err := wasabi.NewClient(config)
	if err != nil {
		return nil, err
	}
	
	// Ожидаем запуска WasabiWallet.
	for {
		if client.IsWasabiWalletUp() {
			break
		}
		time.Sleep(1 * time.Second)
	}
	log.Printf("WasabiWallet RPC Server started")
	
	// Выполнение запроса к WasabiWallet.
	resp, err := client.GetStatus()
	if err != nil {
		return err
	}
	log.Printf("WasabiWallet RPC Server status: %v", resp)
	
	// ...
}

Вклад в разработку

  • Вы можете форкнуть этот репозиторий, дополнить его и внести свой вклад.
  • Вы можете внести свой вклад через пулл-реквесты.

Поддержать новые разработки:

Вы можете поддержать ФБК, используя банковские карты (если Вы находитесь за пределами РФ), электронные кошельки и криптовалюты.

Лицензия

Свободная лицензия MIT