Skip to content

curupo/nemscan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NEMSCAN

NEM (NIS1) ブロックチェーンエクスプローラーです。ブロック・トランザクション・アカウント・ネームスペース・モザイク等をブラウザから閲覧できます。

特徴

  • ブロック・トランザクション・アカウントのリアルタイム閲覧
  • ネームスペース・モザイクの一覧と詳細ページ(Create Time 表示含む)
  • XEM 価格表示(外部 API 連携)
  • アクティブ スーパーノード一覧
  • リッチリスト(上位保有アドレス)
  • ライトテーマ / ディムテーマ / ダークテーマ切り替え
  • nemtool.com の歴史的アーカイブをローカルにキャッシュ(ネームスペース・モザイク・ポール)

必要環境

  • Node.js v22 以上(node:sqlite 組み込みモジュールを使用)
  • インターネット接続(NEM ノードおよび nemtool.com へのアクセス)

セットアップ

git clone https://github.com/curupo/nemscan.git
cd nemscan
npm install
node index.js

起動後、ブラウザで http://localhost:3000/ を開いてください。

起動直後はバックグラウンドでキャッシュの初期構築が走ります(3 秒後に開始)。
ネームスペース・モザイクのアーカイブインポートは初回のみ実行され、完了までしばらくかかります。

ファイル構成

nemscan/
├── index.js          # Express サーバー・ルート定義・起動
├── src/
│   ├── constants.js  # 定数(ノードリスト・タイムアウト値など)
│   ├── context.js    # AsyncLocalStorage(リクエスト単位のノード選択)
│   ├── helpers.js    # ユーティリティ(日付変換・アドレス導出・フォーマット)
│   ├── db.js         # SQLite セットアップ・全 DB アクセス関数
│   ├── nemApi.js     # NEM NIS への fetch(nemFetch・getBlock・getAccount 等)
│   ├── cache.js      # バックグラウンド更新・アーカイブインポート
│   └── html.js       # HTML 生成関数
└── public/
    ├── style.css     # 共有スタイルシート
    ├── nem_logo.png
    └── manifest.json

データの初期化・再同期

キャッシュ DB をすべて削除して最初からやり直す

rm cache.db cache.db-shm cache.db-wal
node index.js

DB ファイルを削除して再起動すると、テーブル作成とアーカイブインポートがすべて最初から実行されます。

アーカイブを個別に再インポートする

サーバーを停止した状態で、SQLite CLI を使って該当フラグを削除してから再起動します。

# ネームスペース アーカイブを再インポート
sqlite3 cache.db "DELETE FROM cache_meta WHERE key = 'namespaces_archive_imported';"

# モザイク アーカイブを再インポート(Create Time 等の新項目が追加された場合も同様)
sqlite3 cache.db "DELETE FROM cache_meta WHERE key = 'mosaics_archive_imported';"

# ポール アーカイブを再インポート
sqlite3 cache.db "DELETE FROM cache_meta WHERE key = 'polls_imported';"

node index.js

ライブキャッシュ(ネームスペース・モザイク・リッチリスト)は自動更新

以下のデータはサーバー稼働中に自動的に定期更新されます。手動操作は不要です。

データ 更新間隔
ネームスペース(ライブ) 10 分
モザイク(ライブ) 10 分
モザイク(ディープ全件更新) 6 時間
XEM 価格 1 分
リッチリスト(ライブ順位) 5 分
リッチリスト(元データ取得) 6 時間
スーパーノード一覧 5 分

ポート変更

デフォルトは 3000 です。変更する場合は index.js 冒頭の PORT 定数を編集してください。

const PORT = 3000;

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors