🔀CPI - Cross Program Invocation
CPIは、あるプログラムから別のプログラムへの直接呼び出しのことです。クライアントがJSON RPCを使用して任意のプログラムを呼び出すことができるのと同様に、任意のプログラムが他のプログラムを直接呼び出すことができます。
CPI は基本的に、Solanaエコシステム全体を開発者が自由に使える1つの巨大なAPIに変えます。
🤔 How to make a CPI
CPIは、solana_programクレートのinvokeまたはinvoke_signed関数を使用して作成されます。
CPI は、呼び出し元の署名者特権を呼び出し先に拡張します。
-
invokeは、元のトランザクション署名を呼び出しているプログラムに渡します。(https://docs.rs/solana-program/1.10.19/solana_program/program/fn.invoke.html?utm_source=buildspace.so&utm_medium=buildspace_project) -
invoke_signedはPDAを使用して、プログラムに命令を「署名」させます。(https://docs.rs/solana-program/1.10.19/solana_program/program/fn.invoke_signed.html?utm_source=buildspace.so&utm_medium=buildspace_project)
instructionタイプは以下の定義がされています。
-
program_id呼び出すプログラムのパブリックキー -
account呼び出させたプログラムが読み書きする全てのアカウント -
dataベクトルとして呼び出し先プログラムに渡されるデータを表すバイトバッファー
Instruction構造体のaccountsフィールドはAccountMetaタイプのベクターです。
例えば
-
AccountMeta::new書き込み可能 -
AccountMeta::read_only書き込み不可能 -
(account1_pubkey, true)アカウントは署名者 -
(account2_pubkey, false)アカウントは署名者でない
最後に

Verooは、Blockchain技術を活用した「想いの巡るグルメSNSアプリ」です。食に対する熱量、例えばラーメンがめちゃくちゃ好きで年間400杯食べているとか、変態的に具材にこだわった中華料理を作っているなどのような、今まで直接お金にはならなかった食に対する情熱や熱量、その裏側にある想いがトークンを使うことで巡る世界。自分のラーメンに費やす熱量がコミュニティに承認される。自分がほんとにいいと思って作った食べ物がコミュニティで広まる。Verooは単なるSNSアプリではなく、クリエイターたちの想いが紡がれるソーシャルグルメアプリです。



