簡単な銀行口座申請
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
概要
これは単純な銀行口座アプリケーションであり、scalardl
リポジトリにあります。ユーザーが実行できるアクションは、アカウントの作成、アカウント履歴の表示、アカウントへの資金の入金、アカウントからの資金の引き出し、アカウント間の資金の転送です。アカウントで実行されたすべての アクションは ScalarDL に記録されます。これは、ブロックチェーンがブロックを記録する方法と似た方法で、アカウント履歴が改ざん検知可能な方法で記録されることを意味します。これは、アカウント履歴が (意図的かどうかに関わらず) 変更された場合、これを検出することが可能であることを意味します。
ここでは物事を簡単にするために、銀行がすべてのコントラクトを実行するための秘密鍵を保持していると仮定します (これがどのように機能するかについては、以下を参照してください)。おそらくこれは、この銀行アプリケーションを実際に使用する方法ではありません。この場合、悪意のあるアカウントマネージャーがユーザーのアカウント履歴を実際に変更する可能性があります。たとえば、単にアカウントを再作成し、偽のデータを入力するだけです。より意味のある設定は、銀行が口座に入金するための秘密鍵を所有し、各ユーザーが自分の秘密鍵を使用して引き出しと送金のコントラクトを登録することです。その場合、銀行のみが口座に資金を移動でき、ユーザーのみが口座から資金を移動できます。
このアプリケーションでは、次の5つのコントラクトを使用します。
これらのコントラクトは銀行によって登録され、銀行はそれぞれ、口座履歴の表示、口座の作成、口座への入金、口座間の資金移動、口座からの資金の引き出しを行うことができます。
このアプリケーションの全体的なアーキテクチャは次のようになります。(この使用例は簡素化のためのものであり、実際には少し異なる可能性があることに再度注意してください。)
このサンプルアプリケーションの前提条件
- Eclipse Temurin の OpenJDK LTS バージョン (8, 11, 17, or 21)
- 上記の LTS バージョンの使用をお勧めしますが、他の非 LTS バージョンでも動作する可能性があります。
- また、他の JDK でもこのサンプルアプリケーションは動作するはずですが、テストは行っていません。
アプリケーションを試してみる
ScalarDL Client SDKをダウンロードします。ScalarDL が実行されていることを確認し、必要なコントラクトをすべて実行して登録します。
./gradlew build
cd contract
SCALAR_SDK_HOME=/path/to/scalardl-client-sdk ./register
IntelliJ (または選択した IDE) を使用するか、プロジェクトのホームディレクトリで gradle bootRun
を実行して、アプリケーションを実行します。アプリと対話するために HTTP リクエストを送信できるサーバーを localhost:8080
上に作成する必要があります。詳細については、API ドキュメントを参照してください。HTTP リクエストを作成するには、Postman が便利です。