显示crate…

1 个不稳定发布

0.2.1 2021年5月22日
0.0.0 2021年3月9日

#109 in #tetcoin

GPL-3.0 许可证

86KB
2K SLoC

Frontend Backend

Tetcore Telemetry

概述

此仓库包含Tetcore Telemetry的后端摄取服务器以及通常在telemetry.tetcoin.org运行的Frontend。

后端是Rust项目,前端是React/TypeScript项目。

入门

要运行后端,您需要cargo来构建二进制文件。我们推荐使用rustup

要运行前端,请确保获取最新的稳定版本的node,并在做任何事情之前安装依赖项

nvm install stable
yarn

终端1 - 后端

cd backend
cargo build --release
./target/release/telemetry --help

默认情况下,遥测将仅在本地接口(127.0.0.1)上监听端口8000。您可以使用下面的--listen标志更改这两个值

telemetry --listen 0.0.0.0:8888

此示例在所有接口上监听端口:8888

终端2 - 前端

cd frontend
yarn install
yarn start

终端3 - Node

请按照Tetcoin仓库的后续安装说明进行操作

tetcoin --dev --telemetry-url ws://127.0.0.1:8000/submit

Docker

预构建的docker镜像可在parity/tetcore-telemetry-frontendparity/tetcore-telemetry-backend找到。

运行后端和前端

显然,前端需要知道后端。同样,您的节点需要连接到后端。为了简洁,以下我将容器命名为backendfrontend。在复杂环境中,您可能希望使用例如telemetry-backend之类的名称,以避免与其他backend容器冲突。

让我们首先启动后端。这里我们将使用已发布的chevdor镜像,请随意替换为您的镜像。

docker run --rm -i --name backend -p 8000:8000 \
  chevdor/tetcore-telemetry-backend -l 0.0.0.0:8000

现在让我们启动前端

docker run --rm -i --name frontend --link backend -p 80:80 \
  -e TETCORE_TELEMETRY_URL=ws://localhost:8000/feed \
  chevdor/tetcore-telemetry-frontend

警告:不要忘记URL中的/feed部分…

注意:在此,我们使用了 TETCORE_TELEMETRY_URL=ws://localhost:8000/feed。如果在您的计算机上本地运行所有测试,则此设置将正常工作,但如果您的后端运行在远程服务器上则不会。请记住,前端Docker镜像正在为运行浏览器的静态网站提供服务。TETCORE_TELEMETRY_URL 是浏览器将用于到达后端的WebSocket URL。假设您的后端运行在远程服务器 192.168.0.100 上,您需要在 TETCORE_TELEMETRY_URL 中相应地设置IP/URL。

此时,您已经可以打开浏览器访问 https://127.0.0.1,并看到遥测正在等待数据。

让我们用节点引入一些数据

docker run --rm -i --name tetcore --link backend -p 9944:9944 \
  chevdor/tetcore tetcore --dev --telemetry-url 'ws://backend:8000/submit 0'

现在您应该能在本地 遥测前端 中看到您的节点: image

通过docker-compose运行

要通过Docker运行,请确保您有Docker Desktop。如果没有,您可以在此下载适用于您的操作系统: Docker Desktop

docker-compose up --build -d
  • --build 表示分离模式,如果您想查看日志,我建议使用 Kitmatic 或不要使用 --build
  • --build 将构建镜像并重新构建,但不是每次都需要这样做
  • 如果您想进行UI更改,由于文件是通过卷复制的,因此无需重新构建镜像

现在在浏览器中导航到 https://127.0.0.1:3000 来查看应用程序。

构建并发布前端Docker镜像

构建过程是标准的。您只需要注意Dockerfile位于 ./packages/frontend/,并告诉Docker关于它的事情。虽然如此,但上下文必须保持为存储库的根目录。

DOCKER_USER=chevdor ./scripts/build-docker-frontend.sh

依赖项

~33MB
~675K SLoC