Solana dAppsのサーバー構築時のハマリポイント

STEPNみたいな構成でサーバー構築した場合のハマリポイント。

STEPNのシステム概要(仮説)

サーバー

AWSやGoogle Cloud Platformといったカスタマイズが柔軟なサーバーの採用がおすすめ。特にサーバー間IP制限できる必要がある。
たとえば、Web2フロントエンドからweb3バックエンドに、NFT発行やトークン送信をリクエストする場合、バックエンド側にKeypairが格納されているため、バックエンドはIP制限などセキュリティを高める必要がある。

最初はHerokuで構築していたが、IP制限するためにはEnterprise契約が必要で、コスト見合いでAWSに切り替えた。

NPMモジュール

sleepは自分で定義

NPMにsleepがあって便利ではあるが、サーバー側に追加でライブラリのインストールが必要になるため、独自定義するのがよい。

export function sleep(ms: number): Promise<void> {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

sleep(1000);

bufferのimport

Reactで、なぜかNFTが習得できない現象が発生。しかもエラーが出力されずハマった。
その場合は以下を追加したら解決した。

import { Buffer } from 'buffer';

// @ts-ignore
window.Buffer = Buffer;

もしかしたら、おまじないのように入れておいたほうがよいかも。