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
rm cache.db cache.db-shm cache.db-wal
node index.jsDB ファイルを削除して再起動すると、テーブル作成とアーカイブインポートがすべて最初から実行されます。
サーバーを停止した状態で、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;