Forecaster и кошелёк VIZ работают прямо в браузере — устанавливать ничего не обязательно. Приложения нужны тем, кому важна работа офлайн, иконка в трее и подключение к собственной ноде.
Forecaster and the VIZ wallet run straight in the browser — installing anything is optional. The desktop apps are for those who want offline use, a tray icon and a connection to their own node.
PWA: открывается по ссылке, ставится на домашний экран как приложение, работает офлайн. Обновляется само.
PWA: opens from a link, installs to your home screen like an app, works offline. Updates itself.
Открыть OpenУстановщик .msi, 64-бит.
An .msi installer, 64-bit.
Образ .dmg. Сборка под Apple Silicon (M1 и новее).
A .dmg image. Built for Apple Silicon (M1 and newer).
Пакет .deb для Debian/Ubuntu или универсальный AppImage.
A .deb package for Debian/Ubuntu, or a portable AppImage.
Исходный код и все выпуски —
на GitHub.
Клиент — один app.js без сборщиков: свою копию можно поднять на любом статическом хостинге.
Source code and every release live
on GitHub.
The client is a single app.js with no bundlers: your own copy runs on any static host.
Аккаунты и ключи, переводы, делегирование, голосование за валидаторов, DAO-заявки и разделы рынков предсказаний. Ключи хранятся только у вас, при желании — под паролем и отпечатком пальца.
Accounts and keys, transfers, delegation, validator voting, DAO requests and the prediction-market sections. Keys stay with you only — optionally behind a passphrase and a fingerprint.
Веб-версия на wallet.viz.world.
The web version at wallet.viz.world.
Открыть OpenУстановщик .msi, 64-бит.
An .msi installer, 64-bit.
Образ .dmg. Сборка под Apple Silicon (M1 и новее).
A .dmg image. Built for Apple Silicon (M1 and newer).
Пакет .deb для Debian/Ubuntu или универсальный AppImage.
A .deb package for Debian/Ubuntu, or a portable AppImage.
Исходный код — VIZ-Blockchain/WebVIZWallet.
Source code — VIZ-Blockchain/WebVIZWallet.
Установщики не подписаны платным сертификатом разработчика — это осознанный выбор: сертификат привязывает выпуск софта к юрлицу, которое можно принудить отозвать подпись. Поэтому система один раз спросит подтверждение:
The installers are not signed with a paid developer certificate — a deliberate choice: a certificate ties software releases to a legal entity that can be forced to revoke it. So the OS will ask for confirmation once:
chmod +x Forecaster*.AppImage.chmod +x Forecaster*.AppImage.Проверить, что скачали именно наш файл, можно по контрольной сумме на странице выпуска — приложения собираются публично, на серверах GitHub, из открытого кода.
You can verify the file against the checksum on the release page — the apps are built publicly on GitHub runners from open source.
По умолчанию приложения ходят в сеть через публичный узел. Свой узел убирает и этого посредника: запросы никуда не уходят, историю ваших ставок никто не видит, а работа клиента не зависит от чужого сервера.
By default the apps reach the network through a public node. Running your own removes that intermediary too: nothing leaves your machine, nobody sees your betting history, and the client no longer depends on someone else's server.
vizd.exe из
выпусков viz-cpp-node;
для Linux и macOS — образ vizblockchain/vizd в Docker.vizd.exe from the
viz-cpp-node releases;
for Linux and macOS the vizblockchain/vizd Docker image.config.ini (ниже) и запустите. Состояние сети
подтягивается снапшотом с доверенных узлов: это около 4 МБ и несколько секунд вместо
переигрывания всей истории. Ещё минута — и узел догоняет сеть по блокам.config.ini (below) next to it and start. Network state is
pulled as a snapshot from trusted peers: about 4 MB and a few seconds instead of replaying
the whole history. A minute later the node has caught up with the chain.http://127.0.0.1:8090.
Индикатор покажет задержку и отставание от сети.http://127.0.0.1:8090.
The indicator shows latency and how far the node lags behind the network.plugin = chain p2p webserver json_rpc database_api network_broadcast_api
plugin = account_history snapshot
p2p-endpoint = 0.0.0.0:2001
p2p-seed-node = 175.110.112.214:2001
p2p-seed-node = 178.156.251.126:2001
webserver-http-endpoint = 127.0.0.1:8090
shared-file-size = 4G
sync-snapshot-from-trusted-peer = true
trusted-snapshot-peer = 175.110.112.214:8092
trusted-snapshot-peer = 178.156.251.126:8092
enable-stalled-sync-detection = true
dlt-block-log-max-blocks = 201600
history-count-blocks = 201600
Две последние строки держат на диске примерно неделю блоков и истории
операций (201600 блоков по 3 секунды) — этого хватает приложению, а хранилище не растёт
бесконечно. enable-stalled-sync-detection включает самолечение: если синхронизация
встанет, узел сам перекачает снапшот у доверенного соседа.
The last two lines keep about a week of blocks and operation history on
disk (201600 blocks at 3 seconds each) — enough for the app, while storage stops growing without
bound. enable-stalled-sync-detection turns on self-healing: if sync gets stuck, the
node re-fetches a snapshot from a trusted peer.
Узлы в примере заданы IP-адресами намеренно: текущая публичная сборка ноды не резолвит доменные имена в этих двух настройках и молча остаётся без соседей (исправлено в ветке разработки). Список короткий, потому что в нём только узлы, которые на момент публикации реально принимают входящие подключения (проверено); остальных соседей узел находит сам, обмениваясь адресами с этими двумя. Актуальный список публичных узлов — в документации.
The example uses IP addresses on purpose: the current public node build does not resolve host names in these two settings and silently ends up with no peers (fixed in the development branch). The list is short because it only contains nodes that actually accept incoming connections as of publication (verified); your node discovers the rest by exchanging addresses with these two. An up-to-date list of public nodes is in the documentation.
Важно: к узлу на 127.0.0.1 подключается именно
приложение. Открытый по https сайт до вашего локального узла не достучится — браузеры
блокируют такие запросы (Local Network Access). Это и есть главная причина, по которой у
Forecaster есть десктоп-версия.
Note: it is the desktop app that talks to
127.0.0.1. A site served over https cannot reach your local node — browsers block
those requests (Local Network Access). That is the main reason Forecaster ships a desktop build.
Рынки предсказаний отдаёт отдельный плагин
prediction_market_api, и в текущей публичной сборке ноды его ещё нет — вписывать
строку plugin = prediction_market_api в конфиг пока НЕ нужно: узел с неизвестным
плагином просто не запустится. Без него нода отвечает на обычные запросы, но списки рынков
будут пустыми, и приложение честно предупредит об этом на экране выбора узла. Подробности —
документация ноды.
Prediction markets are served by a separate
prediction_market_api plugin, which the current public node build does not ship
yet — do not add plugin = prediction_market_api to the config for now: a node
refuses to start on an unknown plugin. Without it the node answers ordinary calls but returns
empty market lists, and the app says so on the node screen. Details in the
node documentation.