diff --git a/docs/Solana-Co-Learn/README.md b/docs/Solana-Co-Learn/README.md index e3b287475..34bf22582 100644 --- a/docs/Solana-Co-Learn/README.md +++ b/docs/Solana-Co-Learn/README.md @@ -6,43 +6,36 @@ sidebar_class_name: green # Solana Co Learn -## Week0: 区块链基本概念介绍以及Solana基本概念原理介绍及本地开发环境配置 +## Module1: Solana Module1 - 区块链基本概念介绍 -- Solana基本概念原理介绍 - - [账户](./week0/accounts.md) - - [程序](./week0/progams.md) - - [交易](./week0/transactions.md) - - [程序派生地址(PDAs)](./week0/program-derived-addresses.md) - - [跨程序调用](./week0/cpi.md) -- [本地程序开发环境配置](./week0/local_program_development/local_program_development.md) - - [原始Solana合约实现《hello, World》](./week0/local_program_development/native_program_hello.md) - - [Anchor 合约框架实现《hello, World》](./week0/local_program_development/anchor_program_hello.md) - - [使用Solang编译器编译solidity合约实现《hello, World》](./week0/local_program_development/solang_program_hello.md) +- [本地程序开发环境配置](./module1/local_program_development/local_program_development.md) + - [原始Solana合约实现《hello, World》](./module1/local_program_development/native_program_hello.md) + - [Anchor 合约框架实现《hello, World》](./module1/local_program_development/anchor_program_hello.md) + - [使用Solang编译器编译solidity合约实现《hello, World》](./module1/local_program_development/solang_program_hello.md) -- [BackPack钱包使用](./week0/wallet-usage/README.md) +- [BackPack钱包使用](./module1/wallet-usage/README.md) -## Week1: Solana Core1 -### [客户端开发](./week1/client-side-development/README.md) +### [客户端开发](./module1/client-side-development/README.md) -### [钱包和前端](./week1/wallets-and-frontends/README.md) +### [钱包和前端](./module1/wallets-and-frontends/README.md) -### [自定义指令](./week1/custom-instruction/README.md) +### [自定义指令](./module1/custom-instruction/README.md) -### [开始你自己的定制项目](./week1/start-your-own-custom-project/README.md) +### [开始你自己的定制项目](./module1/start-your-own-custom-project/README.md) -## Week2: Solana Core2 +## Module2: Solana Module2 -### SPL token +### [SPL token](./module2/spl-token/README.md) -### NFTs + 使用Metaplex进行铸造 +### [NFTs + 使用Metaplex进行铸造](./module2/nfts-and-minting-with-metaplex/README.md) -### 在用户界面中展示NFTs +### [在用户界面中展示NFTs](./module2/displayings-nfts-in-a-ui/README.md) -### 创造神奇的网络货币并出售JPEG图片 +### [创造神奇的网络货币并出售JPEG图片](./module2/make-magic-internet-money-and-sell-jepgs/README.md) -## Week3: Solana Core3 +## Module3: Solana Module3 ### Introduction to Rust @@ -52,7 +45,7 @@ sidebar_class_name: green ### NFT staking -## Week4: Solana Core4 +## Module4: Solana Module4 ### Local env setup and PDAs @@ -63,7 +56,7 @@ sidebar_class_name: green ### Ship a staking app -## Week 5: Solana Core5 +## Module5: Solana Module5 ### Introduction to Anchor @@ -73,7 +66,7 @@ sidebar_class_name: green ### A full-stack Anchor App -## Week 6: Solana Core6 +## Module6: Solana Module6 ### Ship Week @@ -81,15 +74,16 @@ sidebar_class_name: green ### Finishing touches +## Modules: Solana Modules -## Week 7: Beyond the Basics +### Beyond the Basics - Solana程序中的环境变量 - Solana Pay - 版本化的事务和查找表 - Rust过程宏 -## Weeks 8: Solana程序安全 +### Solana程序安全 - 如何处理程序安全模块 - 签名人授权 @@ -103,7 +97,7 @@ sidebar_class_name: green - 关闭账户和恢复攻击 - PDA sharing -## Week 9: 其他 +### 其他 - 使用Solidity 编写Solana合约 - Solidity 与PDAs diff --git a/docs/Solana-Co-Learn/week1/README.md b/docs/Solana-Co-Learn/module1/README.md similarity index 92% rename from docs/Solana-Co-Learn/week1/README.md rename to docs/Solana-Co-Learn/module1/README.md index 18f4d9a43..fca594113 100644 --- a/docs/Solana-Co-Learn/week1/README.md +++ b/docs/Solana-Co-Learn/module1/README.md @@ -1,10 +1,12 @@ --- sidebar_position: 11 -sidebar_label: week1 +sidebar_label: Module1 sidebar_class_name: green --- -# Solana Core1 +# Solana Module1 + +## 本地开发环境配置以及hello world合约 ## 客户端开发 diff --git a/docs/Solana-Co-Learn/week0/account-matrix.png b/docs/Solana-Co-Learn/module1/account-matrix.png similarity index 100% rename from docs/Solana-Co-Learn/week0/account-matrix.png rename to docs/Solana-Co-Learn/module1/account-matrix.png diff --git a/docs/Solana-Co-Learn/week0/account_example.png b/docs/Solana-Co-Learn/module1/account_example.png similarity index 100% rename from docs/Solana-Co-Learn/week0/account_example.png rename to docs/Solana-Co-Learn/module1/account_example.png diff --git a/docs/Solana-Co-Learn/week1/client-side-development/README.md b/docs/Solana-Co-Learn/module1/client-side-development/README.md similarity index 100% rename from docs/Solana-Co-Learn/week1/client-side-development/README.md rename to docs/Solana-Co-Learn/module1/client-side-development/README.md diff --git a/docs/Solana-Co-Learn/week1/client-side-development/build-an-interaction-script/README.md b/docs/Solana-Co-Learn/module1/client-side-development/build-an-interaction-script/README.md similarity index 100% rename from docs/Solana-Co-Learn/week1/client-side-development/build-an-interaction-script/README.md rename to docs/Solana-Co-Learn/module1/client-side-development/build-an-interaction-script/README.md diff --git a/docs/Solana-Co-Learn/week1/client-side-development/build-an-interaction-script/img/ping-solana.png b/docs/Solana-Co-Learn/module1/client-side-development/build-an-interaction-script/img/ping-solana.png similarity index 100% rename from docs/Solana-Co-Learn/week1/client-side-development/build-an-interaction-script/img/ping-solana.png rename to docs/Solana-Co-Learn/module1/client-side-development/build-an-interaction-script/img/ping-solana.png diff --git a/docs/Solana-Co-Learn/week1/client-side-development/read-data-from-the-solana-network/README.md b/docs/Solana-Co-Learn/module1/client-side-development/read-data-from-the-solana-network/README.md similarity index 100% rename from docs/Solana-Co-Learn/week1/client-side-development/read-data-from-the-solana-network/README.md rename to docs/Solana-Co-Learn/module1/client-side-development/read-data-from-the-solana-network/README.md diff --git a/docs/Solana-Co-Learn/week1/client-side-development/read-data-from-the-solana-network/img/intro-frontend-challenge.png b/docs/Solana-Co-Learn/module1/client-side-development/read-data-from-the-solana-network/img/intro-frontend-challenge.png similarity index 100% rename from docs/Solana-Co-Learn/week1/client-side-development/read-data-from-the-solana-network/img/intro-frontend-challenge.png rename to docs/Solana-Co-Learn/module1/client-side-development/read-data-from-the-solana-network/img/intro-frontend-challenge.png diff --git a/docs/Solana-Co-Learn/week1/client-side-development/read-data-from-the-solana-network/img/intro-frontend-demo.png b/docs/Solana-Co-Learn/module1/client-side-development/read-data-from-the-solana-network/img/intro-frontend-demo.png similarity index 100% rename from docs/Solana-Co-Learn/week1/client-side-development/read-data-from-the-solana-network/img/intro-frontend-demo.png rename to docs/Solana-Co-Learn/module1/client-side-development/read-data-from-the-solana-network/img/intro-frontend-demo.png diff --git a/docs/Solana-Co-Learn/week1/client-side-development/read-data-from-the-solana-network/img/json-rpc-illustration.png b/docs/Solana-Co-Learn/module1/client-side-development/read-data-from-the-solana-network/img/json-rpc-illustration.png similarity index 100% rename from docs/Solana-Co-Learn/week1/client-side-development/read-data-from-the-solana-network/img/json-rpc-illustration.png rename to docs/Solana-Co-Learn/module1/client-side-development/read-data-from-the-solana-network/img/json-rpc-illustration.png diff --git a/docs/Solana-Co-Learn/week1/client-side-development/write-data-to-the-blockchain/README.md b/docs/Solana-Co-Learn/module1/client-side-development/write-data-to-the-blockchain/README.md similarity index 100% rename from docs/Solana-Co-Learn/week1/client-side-development/write-data-to-the-blockchain/README.md rename to docs/Solana-Co-Learn/module1/client-side-development/write-data-to-the-blockchain/README.md diff --git a/docs/Solana-Co-Learn/week1/custom-instruction/README.md b/docs/Solana-Co-Learn/module1/custom-instruction/README.md similarity index 100% rename from docs/Solana-Co-Learn/week1/custom-instruction/README.md rename to docs/Solana-Co-Learn/module1/custom-instruction/README.md diff --git a/docs/Solana-Co-Learn/week1/custom-instruction/build-a-movie-review-app/README.md b/docs/Solana-Co-Learn/module1/custom-instruction/build-a-movie-review-app/README.md similarity index 100% rename from docs/Solana-Co-Learn/week1/custom-instruction/build-a-movie-review-app/README.md rename to docs/Solana-Co-Learn/module1/custom-instruction/build-a-movie-review-app/README.md diff --git a/docs/Solana-Co-Learn/week1/custom-instruction/build-a-movie-review-app/img/upload_1.png b/docs/Solana-Co-Learn/module1/custom-instruction/build-a-movie-review-app/img/upload_1.png similarity index 100% rename from docs/Solana-Co-Learn/week1/custom-instruction/build-a-movie-review-app/img/upload_1.png rename to docs/Solana-Co-Learn/module1/custom-instruction/build-a-movie-review-app/img/upload_1.png diff --git a/docs/Solana-Co-Learn/week1/custom-instruction/build-a-movie-review-app/img/upload_2.png b/docs/Solana-Co-Learn/module1/custom-instruction/build-a-movie-review-app/img/upload_2.png similarity index 100% rename from docs/Solana-Co-Learn/week1/custom-instruction/build-a-movie-review-app/img/upload_2.png rename to docs/Solana-Co-Learn/module1/custom-instruction/build-a-movie-review-app/img/upload_2.png diff --git a/docs/Solana-Co-Learn/week1/custom-instruction/build-a-movie-review-app/img/upload_3.png b/docs/Solana-Co-Learn/module1/custom-instruction/build-a-movie-review-app/img/upload_3.png similarity index 100% rename from docs/Solana-Co-Learn/week1/custom-instruction/build-a-movie-review-app/img/upload_3.png rename to docs/Solana-Co-Learn/module1/custom-instruction/build-a-movie-review-app/img/upload_3.png diff --git a/docs/Solana-Co-Learn/week1/custom-instruction/build-a-movie-review-app/img/upload_4.png b/docs/Solana-Co-Learn/module1/custom-instruction/build-a-movie-review-app/img/upload_4.png similarity index 100% rename from docs/Solana-Co-Learn/week1/custom-instruction/build-a-movie-review-app/img/upload_4.png rename to docs/Solana-Co-Learn/module1/custom-instruction/build-a-movie-review-app/img/upload_4.png diff --git a/docs/Solana-Co-Learn/week1/custom-instruction/custom-instructions/README.md b/docs/Solana-Co-Learn/module1/custom-instruction/custom-instructions/README.md similarity index 100% rename from docs/Solana-Co-Learn/week1/custom-instruction/custom-instructions/README.md rename to docs/Solana-Co-Learn/module1/custom-instruction/custom-instructions/README.md diff --git a/docs/Solana-Co-Learn/week1/custom-instruction/custom-instructions/img/upload_1.png b/docs/Solana-Co-Learn/module1/custom-instruction/custom-instructions/img/upload_1.png similarity index 100% rename from docs/Solana-Co-Learn/week1/custom-instruction/custom-instructions/img/upload_1.png rename to docs/Solana-Co-Learn/module1/custom-instruction/custom-instructions/img/upload_1.png diff --git a/docs/Solana-Co-Learn/week1/custom-instruction/custom-instructions/img/upload_2.png b/docs/Solana-Co-Learn/module1/custom-instruction/custom-instructions/img/upload_2.png similarity index 100% rename from docs/Solana-Co-Learn/week1/custom-instruction/custom-instructions/img/upload_2.png rename to docs/Solana-Co-Learn/module1/custom-instruction/custom-instructions/img/upload_2.png diff --git a/docs/Solana-Co-Learn/week1/custom-instruction/custom-instructions/img/upload_3.png b/docs/Solana-Co-Learn/module1/custom-instruction/custom-instructions/img/upload_3.png similarity index 100% rename from docs/Solana-Co-Learn/week1/custom-instruction/custom-instructions/img/upload_3.png rename to docs/Solana-Co-Learn/module1/custom-instruction/custom-instructions/img/upload_3.png diff --git a/docs/Solana-Co-Learn/week1/custom-instruction/custom-instructions/img/upload_4.png b/docs/Solana-Co-Learn/module1/custom-instruction/custom-instructions/img/upload_4.png similarity index 100% rename from docs/Solana-Co-Learn/week1/custom-instruction/custom-instructions/img/upload_4.png rename to docs/Solana-Co-Learn/module1/custom-instruction/custom-instructions/img/upload_4.png diff --git a/docs/Solana-Co-Learn/week1/custom-instruction/custom-instructions/img/upload_5.png b/docs/Solana-Co-Learn/module1/custom-instruction/custom-instructions/img/upload_5.png similarity index 100% rename from docs/Solana-Co-Learn/week1/custom-instruction/custom-instructions/img/upload_5.png rename to docs/Solana-Co-Learn/module1/custom-instruction/custom-instructions/img/upload_5.png diff --git a/docs/Solana-Co-Learn/week1/custom-instruction/run-it-back-deserialization/README.md b/docs/Solana-Co-Learn/module1/custom-instruction/run-it-back-deserialization/README.md similarity index 100% rename from docs/Solana-Co-Learn/week1/custom-instruction/run-it-back-deserialization/README.md rename to docs/Solana-Co-Learn/module1/custom-instruction/run-it-back-deserialization/README.md diff --git a/docs/Solana-Co-Learn/week1/custom-instruction/run-it-back-deserialization/img/upload_1.png b/docs/Solana-Co-Learn/module1/custom-instruction/run-it-back-deserialization/img/upload_1.png similarity index 100% rename from docs/Solana-Co-Learn/week1/custom-instruction/run-it-back-deserialization/img/upload_1.png rename to docs/Solana-Co-Learn/module1/custom-instruction/run-it-back-deserialization/img/upload_1.png diff --git a/docs/Solana-Co-Learn/week1/custom-instruction/run-it-back-deserialization/img/upload_2.png b/docs/Solana-Co-Learn/module1/custom-instruction/run-it-back-deserialization/img/upload_2.png similarity index 100% rename from docs/Solana-Co-Learn/week1/custom-instruction/run-it-back-deserialization/img/upload_2.png rename to docs/Solana-Co-Learn/module1/custom-instruction/run-it-back-deserialization/img/upload_2.png diff --git a/docs/Solana-Co-Learn/week0/local_program_development/anchor_program_hello.md b/docs/Solana-Co-Learn/module1/local_program_development/anchor_program_hello.md similarity index 100% rename from docs/Solana-Co-Learn/week0/local_program_development/anchor_program_hello.md rename to docs/Solana-Co-Learn/module1/local_program_development/anchor_program_hello.md diff --git a/docs/Solana-Co-Learn/week0/local_program_development/local_program_development.md b/docs/Solana-Co-Learn/module1/local_program_development/local_program_development.md similarity index 100% rename from docs/Solana-Co-Learn/week0/local_program_development/local_program_development.md rename to docs/Solana-Co-Learn/module1/local_program_development/local_program_development.md diff --git a/docs/Solana-Co-Learn/week0/local_program_development/native_program_hello.md b/docs/Solana-Co-Learn/module1/local_program_development/native_program_hello.md similarity index 100% rename from docs/Solana-Co-Learn/week0/local_program_development/native_program_hello.md rename to docs/Solana-Co-Learn/module1/local_program_development/native_program_hello.md diff --git a/docs/Solana-Co-Learn/week0/local_program_development/solang_program_hello.md b/docs/Solana-Co-Learn/module1/local_program_development/solang_program_hello.md similarity index 100% rename from docs/Solana-Co-Learn/week0/local_program_development/solang_program_hello.md rename to docs/Solana-Co-Learn/module1/local_program_development/solang_program_hello.md diff --git a/docs/Solana-Co-Learn/week1/start-your-own-custom-project/README.md b/docs/Solana-Co-Learn/module1/start-your-own-custom-project/README.md similarity index 100% rename from docs/Solana-Co-Learn/week1/start-your-own-custom-project/README.md rename to docs/Solana-Co-Learn/module1/start-your-own-custom-project/README.md diff --git a/docs/Solana-Co-Learn/week1/start-your-own-custom-project/build-an-nft-minter-front-end/README.md b/docs/Solana-Co-Learn/module1/start-your-own-custom-project/build-an-nft-minter-front-end/README.md similarity index 100% rename from docs/Solana-Co-Learn/week1/start-your-own-custom-project/build-an-nft-minter-front-end/README.md rename to docs/Solana-Co-Learn/module1/start-your-own-custom-project/build-an-nft-minter-front-end/README.md diff --git a/docs/Solana-Co-Learn/week1/start-your-own-custom-project/build-an-nft-minter-front-end/img/upload_1.png b/docs/Solana-Co-Learn/module1/start-your-own-custom-project/build-an-nft-minter-front-end/img/upload_1.png similarity index 100% rename from docs/Solana-Co-Learn/week1/start-your-own-custom-project/build-an-nft-minter-front-end/img/upload_1.png rename to docs/Solana-Co-Learn/module1/start-your-own-custom-project/build-an-nft-minter-front-end/img/upload_1.png diff --git a/docs/Solana-Co-Learn/week1/start-your-own-custom-project/build-an-nft-minter-front-end/img/upload_2.png b/docs/Solana-Co-Learn/module1/start-your-own-custom-project/build-an-nft-minter-front-end/img/upload_2.png similarity index 100% rename from docs/Solana-Co-Learn/week1/start-your-own-custom-project/build-an-nft-minter-front-end/img/upload_2.png rename to docs/Solana-Co-Learn/module1/start-your-own-custom-project/build-an-nft-minter-front-end/img/upload_2.png diff --git a/docs/Solana-Co-Learn/week1/start-your-own-custom-project/deploy-to-vercel/README.md b/docs/Solana-Co-Learn/module1/start-your-own-custom-project/deploy-to-vercel/README.md similarity index 100% rename from docs/Solana-Co-Learn/week1/start-your-own-custom-project/deploy-to-vercel/README.md rename to docs/Solana-Co-Learn/module1/start-your-own-custom-project/deploy-to-vercel/README.md diff --git a/docs/Solana-Co-Learn/week0/wallet-usage/README.md b/docs/Solana-Co-Learn/module1/wallet-usage/README.md similarity index 100% rename from docs/Solana-Co-Learn/week0/wallet-usage/README.md rename to docs/Solana-Co-Learn/module1/wallet-usage/README.md diff --git a/docs/Solana-Co-Learn/week0/wallet-usage/backpack-chose-solana.png b/docs/Solana-Co-Learn/module1/wallet-usage/backpack-chose-solana.png similarity index 100% rename from docs/Solana-Co-Learn/week0/wallet-usage/backpack-chose-solana.png rename to docs/Solana-Co-Learn/module1/wallet-usage/backpack-chose-solana.png diff --git a/docs/Solana-Co-Learn/week0/wallet-usage/backpack-cliam-name.png b/docs/Solana-Co-Learn/module1/wallet-usage/backpack-cliam-name.png similarity index 100% rename from docs/Solana-Co-Learn/week0/wallet-usage/backpack-cliam-name.png rename to docs/Solana-Co-Learn/module1/wallet-usage/backpack-cliam-name.png diff --git a/docs/Solana-Co-Learn/week0/wallet-usage/backpack-create-account.png b/docs/Solana-Co-Learn/module1/wallet-usage/backpack-create-account.png similarity index 100% rename from docs/Solana-Co-Learn/week0/wallet-usage/backpack-create-account.png rename to docs/Solana-Co-Learn/module1/wallet-usage/backpack-create-account.png diff --git a/docs/Solana-Co-Learn/week0/wallet-usage/backpack-create-new-wallet.png b/docs/Solana-Co-Learn/module1/wallet-usage/backpack-create-new-wallet.png similarity index 100% rename from docs/Solana-Co-Learn/week0/wallet-usage/backpack-create-new-wallet.png rename to docs/Solana-Co-Learn/module1/wallet-usage/backpack-create-new-wallet.png diff --git a/docs/Solana-Co-Learn/week0/wallet-usage/backpack-custom-rpc.png b/docs/Solana-Co-Learn/module1/wallet-usage/backpack-custom-rpc.png similarity index 100% rename from docs/Solana-Co-Learn/week0/wallet-usage/backpack-custom-rpc.png rename to docs/Solana-Co-Learn/module1/wallet-usage/backpack-custom-rpc.png diff --git a/docs/Solana-Co-Learn/week0/wallet-usage/backpack-mnemonic.png b/docs/Solana-Co-Learn/module1/wallet-usage/backpack-mnemonic.png similarity index 100% rename from docs/Solana-Co-Learn/week0/wallet-usage/backpack-mnemonic.png rename to docs/Solana-Co-Learn/module1/wallet-usage/backpack-mnemonic.png diff --git a/docs/Solana-Co-Learn/week0/wallet-usage/backpack-perference.png b/docs/Solana-Co-Learn/module1/wallet-usage/backpack-perference.png similarity index 100% rename from docs/Solana-Co-Learn/week0/wallet-usage/backpack-perference.png rename to docs/Solana-Co-Learn/module1/wallet-usage/backpack-perference.png diff --git a/docs/Solana-Co-Learn/week0/wallet-usage/backpack-setting.png b/docs/Solana-Co-Learn/module1/wallet-usage/backpack-setting.png similarity index 100% rename from docs/Solana-Co-Learn/week0/wallet-usage/backpack-setting.png rename to docs/Solana-Co-Learn/module1/wallet-usage/backpack-setting.png diff --git a/docs/Solana-Co-Learn/week0/wallet-usage/backpack-setting1.png b/docs/Solana-Co-Learn/module1/wallet-usage/backpack-setting1.png similarity index 100% rename from docs/Solana-Co-Learn/week0/wallet-usage/backpack-setting1.png rename to docs/Solana-Co-Learn/module1/wallet-usage/backpack-setting1.png diff --git a/docs/Solana-Co-Learn/week1/wallets-and-frontends/README.md b/docs/Solana-Co-Learn/module1/wallets-and-frontends/README.md similarity index 100% rename from docs/Solana-Co-Learn/week1/wallets-and-frontends/README.md rename to docs/Solana-Co-Learn/module1/wallets-and-frontends/README.md diff --git a/docs/Solana-Co-Learn/week1/wallets-and-frontends/connecting-to-wallet/README.md b/docs/Solana-Co-Learn/module1/wallets-and-frontends/connecting-to-wallet/README.md similarity index 100% rename from docs/Solana-Co-Learn/week1/wallets-and-frontends/connecting-to-wallet/README.md rename to docs/Solana-Co-Learn/module1/wallets-and-frontends/connecting-to-wallet/README.md diff --git a/docs/Solana-Co-Learn/week1/wallets-and-frontends/connecting-to-wallet/img/upload_1.png b/docs/Solana-Co-Learn/module1/wallets-and-frontends/connecting-to-wallet/img/upload_1.png similarity index 100% rename from docs/Solana-Co-Learn/week1/wallets-and-frontends/connecting-to-wallet/img/upload_1.png rename to docs/Solana-Co-Learn/module1/wallets-and-frontends/connecting-to-wallet/img/upload_1.png diff --git a/docs/Solana-Co-Learn/week1/wallets-and-frontends/connecting-to-wallet/img/upload_2.png b/docs/Solana-Co-Learn/module1/wallets-and-frontends/connecting-to-wallet/img/upload_2.png similarity index 100% rename from docs/Solana-Co-Learn/week1/wallets-and-frontends/connecting-to-wallet/img/upload_2.png rename to docs/Solana-Co-Learn/module1/wallets-and-frontends/connecting-to-wallet/img/upload_2.png diff --git a/docs/Solana-Co-Learn/week1/wallets-and-frontends/connecting-to-wallet/img/wallets.png b/docs/Solana-Co-Learn/module1/wallets-and-frontends/connecting-to-wallet/img/wallets.png similarity index 100% rename from docs/Solana-Co-Learn/week1/wallets-and-frontends/connecting-to-wallet/img/wallets.png rename to docs/Solana-Co-Learn/module1/wallets-and-frontends/connecting-to-wallet/img/wallets.png diff --git a/docs/Solana-Co-Learn/week1/wallets-and-frontends/interact-with-a-program/README.md b/docs/Solana-Co-Learn/module1/wallets-and-frontends/interact-with-a-program/README.md similarity index 100% rename from docs/Solana-Co-Learn/week1/wallets-and-frontends/interact-with-a-program/README.md rename to docs/Solana-Co-Learn/module1/wallets-and-frontends/interact-with-a-program/README.md diff --git a/docs/Solana-Co-Learn/week1/wallets-and-frontends/interact-with-a-program/img/upload_1.png b/docs/Solana-Co-Learn/module1/wallets-and-frontends/interact-with-a-program/img/upload_1.png similarity index 100% rename from docs/Solana-Co-Learn/week1/wallets-and-frontends/interact-with-a-program/img/upload_1.png rename to docs/Solana-Co-Learn/module1/wallets-and-frontends/interact-with-a-program/img/upload_1.png diff --git a/docs/Solana-Co-Learn/week1/wallets-and-frontends/interact-with-a-program/img/upload_2.png b/docs/Solana-Co-Learn/module1/wallets-and-frontends/interact-with-a-program/img/upload_2.png similarity index 100% rename from docs/Solana-Co-Learn/week1/wallets-and-frontends/interact-with-a-program/img/upload_2.png rename to docs/Solana-Co-Learn/module1/wallets-and-frontends/interact-with-a-program/img/upload_2.png diff --git a/docs/Solana-Co-Learn/week2/README.md b/docs/Solana-Co-Learn/module2/README.md similarity index 94% rename from docs/Solana-Co-Learn/week2/README.md rename to docs/Solana-Co-Learn/module2/README.md index 20ddf9586..612a35a01 100644 --- a/docs/Solana-Co-Learn/week2/README.md +++ b/docs/Solana-Co-Learn/module2/README.md @@ -1,10 +1,10 @@ --- sidebar_position: 26 -sidebar_label: week2 +sidebar_label: Module2 sidebar_class_name: green --- -# Solana Core2 +# Solana Module2 ## SPL代币 diff --git a/docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/README.md b/docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/README.md similarity index 100% rename from docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/README.md rename to docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/README.md diff --git a/docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/README.md b/docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/README.md similarity index 100% rename from docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/README.md rename to docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/README.md diff --git a/docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/candy-machine-nft.png b/docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/candy-machine-nft.png similarity index 100% rename from docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/candy-machine-nft.png rename to docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/candy-machine-nft.png diff --git a/docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/find-by-address-result.png b/docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/find-by-address-result.png similarity index 100% rename from docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/find-by-address-result.png rename to docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/find-by-address-result.png diff --git a/docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/find-by-address.png b/docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/find-by-address.png similarity index 100% rename from docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/find-by-address.png rename to docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/find-by-address.png diff --git a/docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/find-nf.png b/docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/find-nf.png similarity index 100% rename from docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/find-nf.png rename to docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-candy-machine/img/find-nf.png diff --git a/docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-wallet/README.md b/docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-wallet/README.md similarity index 100% rename from docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-wallet/README.md rename to docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-wallet/README.md diff --git a/docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-wallet/img/display-from-wallet.png b/docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-wallet/img/display-from-wallet.png similarity index 100% rename from docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-wallet/img/display-from-wallet.png rename to docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-wallet/img/display-from-wallet.png diff --git a/docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-wallet/img/nfts-wallet.png b/docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-wallet/img/nfts-wallet.png similarity index 100% rename from docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts-from-a-wallet/img/nfts-wallet.png rename to docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts-from-a-wallet/img/nfts-wallet.png diff --git a/docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts/README.md b/docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts/README.md similarity index 100% rename from docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts/README.md rename to docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts/README.md diff --git a/docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts/img/display-nft.png b/docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts/img/display-nft.png similarity index 100% rename from docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts/img/display-nft.png rename to docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts/img/display-nft.png diff --git a/docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts/img/nft-url.png b/docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts/img/nft-url.png similarity index 100% rename from docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts/img/nft-url.png rename to docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts/img/nft-url.png diff --git a/docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts/img/other-way-find-nft.png b/docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts/img/other-way-find-nft.png similarity index 100% rename from docs/Solana-Co-Learn/week2/displayings-nfts-in-a-ui/displaying-nfts/img/other-way-find-nft.png rename to docs/Solana-Co-Learn/module2/displayings-nfts-in-a-ui/displaying-nfts/img/other-way-find-nft.png diff --git a/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/README.md b/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/README.md new file mode 100644 index 000000000..d31e310e9 --- /dev/null +++ b/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/README.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 40 +sidebar_label: 创造神奇的互联网货币并出售JPEG图片 +sidebar_class_name: green +--- + +# 创造神奇的互联网货币并出售JPEG图片 + +- 🎨 创建奖励代币 +- 🍬 创造糖果机 +- 🎨 创建铸币用户界面 diff --git a/docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-candy-machine/README.md b/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-candy-machine/README.md similarity index 99% rename from docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-candy-machine/README.md rename to docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-candy-machine/README.md index 365c63b92..fd6061517 100644 --- a/docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-candy-machine/README.md +++ b/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-candy-machine/README.md @@ -1,5 +1,5 @@ --- -sidebar_position: 41 +sidebar_position: 42 sidebar_label: 🍬 创造糖果机 sidebar_class_name: green --- diff --git a/docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-candy-machine/img/nft.png b/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-candy-machine/img/nft.png similarity index 100% rename from docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-candy-machine/img/nft.png rename to docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-candy-machine/img/nft.png diff --git a/docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-candy-machine/img/sugar-upload.png b/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-candy-machine/img/sugar-upload.png similarity index 100% rename from docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-candy-machine/img/sugar-upload.png rename to docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-candy-machine/img/sugar-upload.png diff --git a/docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/README.md b/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/README.md similarity index 99% rename from docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/README.md rename to docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/README.md index 167f93583..f3aa959e3 100644 --- a/docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/README.md +++ b/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/README.md @@ -1,5 +1,5 @@ --- -sidebar_position: 40 +sidebar_position: 41 sidebar_label: 🎨 创建奖励代币 sidebar_class_name: green --- diff --git a/docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/config-result.png b/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/config-result.png similarity index 100% rename from docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/config-result.png rename to docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/config-result.png diff --git a/docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/config.png b/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/config.png similarity index 100% rename from docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/config.png rename to docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/config.png diff --git a/docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/token.png b/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/token.png similarity index 100% rename from docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/token.png rename to docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/token.png diff --git a/docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/tokens.png b/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/tokens.png similarity index 100% rename from docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/tokens.png rename to docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-reward-tokens/img/tokens.png diff --git a/docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-the-minting-ui/README.md b/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-the-minting-ui/README.md similarity index 99% rename from docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-the-minting-ui/README.md rename to docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-the-minting-ui/README.md index 5c6f0cf6c..8624811cf 100644 --- a/docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-the-minting-ui/README.md +++ b/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-the-minting-ui/README.md @@ -1,5 +1,5 @@ --- -sidebar_position: 42 +sidebar_position: 43 sidebar_label: 🎨 创建铸币用户界面 sidebar_class_name: green --- diff --git a/docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-the-minting-ui/img/mint-nft-displayt.png b/docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-the-minting-ui/img/mint-nft-displayt.png similarity index 100% rename from docs/Solana-Co-Learn/week2/make-magic-internet-money-and-sell-jepgs/create-the-minting-ui/img/mint-nft-displayt.png rename to docs/Solana-Co-Learn/module2/make-magic-internet-money-and-sell-jepgs/create-the-minting-ui/img/mint-nft-displayt.png diff --git a/docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/README.md b/docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/README.md similarity index 100% rename from docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/README.md rename to docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/README.md diff --git a/docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/README.md b/docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/README.md similarity index 100% rename from docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/README.md rename to docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/README.md diff --git a/docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-cli.png b/docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-cli.png similarity index 100% rename from docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-cli.png rename to docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-cli.png diff --git a/docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-machine-data.png b/docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-machine-data.png similarity index 100% rename from docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-machine-data.png rename to docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-machine-data.png diff --git a/docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-machine.png b/docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-machine.png similarity index 100% rename from docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-machine.png rename to docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-machine.png diff --git a/docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-nft.png b/docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-nft.png similarity index 100% rename from docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-nft.png rename to docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/candy-nft.png diff --git a/docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/config-file.png b/docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/config-file.png similarity index 100% rename from docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/config-file.png rename to docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/config-file.png diff --git a/docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/launch.png b/docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/launch.png similarity index 100% rename from docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/launch.png rename to docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/candy-machine-and-the-sugar-cli/img/launch.png diff --git a/docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/nft-your-face/README.md b/docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/nft-your-face/README.md similarity index 100% rename from docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/nft-your-face/README.md rename to docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/nft-your-face/README.md diff --git a/docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/nft-your-face/img/cloud-nft.png b/docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/nft-your-face/img/cloud-nft.png similarity index 100% rename from docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/nft-your-face/img/cloud-nft.png rename to docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/nft-your-face/img/cloud-nft.png diff --git a/docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/nft-your-face/img/river-nft.png b/docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/nft-your-face/img/river-nft.png similarity index 100% rename from docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/nft-your-face/img/river-nft.png rename to docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/nft-your-face/img/river-nft.png diff --git a/docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/nfts-one-solana/README.md b/docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/nfts-one-solana/README.md similarity index 100% rename from docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/nfts-one-solana/README.md rename to docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/nfts-one-solana/README.md diff --git a/docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/nfts-one-solana/img/edition-account.png b/docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/nfts-one-solana/img/edition-account.png similarity index 100% rename from docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/nfts-one-solana/img/edition-account.png rename to docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/nfts-one-solana/img/edition-account.png diff --git a/docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/nfts-one-solana/img/master-edition-account.png b/docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/nfts-one-solana/img/master-edition-account.png similarity index 100% rename from docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/nfts-one-solana/img/master-edition-account.png rename to docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/nfts-one-solana/img/master-edition-account.png diff --git a/docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/nfts-one-solana/img/nft-metadata.png b/docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/nfts-one-solana/img/nft-metadata.png similarity index 100% rename from docs/Solana-Co-Learn/week2/nfts-and-minting-with-metaplex/nfts-one-solana/img/nft-metadata.png rename to docs/Solana-Co-Learn/module2/nfts-and-minting-with-metaplex/nfts-one-solana/img/nft-metadata.png diff --git a/docs/Solana-Co-Learn/week2/spl-token/README.md b/docs/Solana-Co-Learn/module2/spl-token/README.md similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/README.md rename to docs/Solana-Co-Learn/module2/spl-token/README.md diff --git a/docs/Solana-Co-Learn/week2/spl-token/give-your-token-an-identity/README.md b/docs/Solana-Co-Learn/module2/spl-token/give-your-token-an-identity/README.md similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/give-your-token-an-identity/README.md rename to docs/Solana-Co-Learn/module2/spl-token/give-your-token-an-identity/README.md diff --git a/docs/Solana-Co-Learn/week2/spl-token/give-your-token-an-identity/img/pizaer.png b/docs/Solana-Co-Learn/module2/spl-token/give-your-token-an-identity/img/pizaer.png similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/give-your-token-an-identity/img/pizaer.png rename to docs/Solana-Co-Learn/module2/spl-token/give-your-token-an-identity/img/pizaer.png diff --git a/docs/Solana-Co-Learn/week2/spl-token/give-your-token-an-identity/img/program-log.png b/docs/Solana-Co-Learn/module2/spl-token/give-your-token-an-identity/img/program-log.png similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/give-your-token-an-identity/img/program-log.png rename to docs/Solana-Co-Learn/module2/spl-token/give-your-token-an-identity/img/program-log.png diff --git a/docs/Solana-Co-Learn/week2/spl-token/give-your-token-an-identity/img/spider-man-pizza-time.gif b/docs/Solana-Co-Learn/module2/spl-token/give-your-token-an-identity/img/spider-man-pizza-time.gif similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/give-your-token-an-identity/img/spider-man-pizza-time.gif rename to docs/Solana-Co-Learn/module2/spl-token/give-your-token-an-identity/img/spider-man-pizza-time.gif diff --git a/docs/Solana-Co-Learn/week2/spl-token/give-your-token-an-identity/img/token-spl.png b/docs/Solana-Co-Learn/module2/spl-token/give-your-token-an-identity/img/token-spl.png similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/give-your-token-an-identity/img/token-spl.png rename to docs/Solana-Co-Learn/module2/spl-token/give-your-token-an-identity/img/token-spl.png diff --git a/docs/Solana-Co-Learn/week2/spl-token/mint-token-on-solana/README.md b/docs/Solana-Co-Learn/module2/spl-token/mint-token-on-solana/README.md similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/mint-token-on-solana/README.md rename to docs/Solana-Co-Learn/module2/spl-token/mint-token-on-solana/README.md diff --git a/docs/Solana-Co-Learn/week2/spl-token/mint-token-on-solana/img/giphy.gif b/docs/Solana-Co-Learn/module2/spl-token/mint-token-on-solana/img/giphy.gif similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/mint-token-on-solana/img/giphy.gif rename to docs/Solana-Co-Learn/module2/spl-token/mint-token-on-solana/img/giphy.gif diff --git a/docs/Solana-Co-Learn/week2/spl-token/mint-token-on-solana/img/mint-token-wallet.png b/docs/Solana-Co-Learn/module2/spl-token/mint-token-on-solana/img/mint-token-wallet.png similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/mint-token-on-solana/img/mint-token-wallet.png rename to docs/Solana-Co-Learn/module2/spl-token/mint-token-on-solana/img/mint-token-wallet.png diff --git a/docs/Solana-Co-Learn/week2/spl-token/mint-token-on-solana/img/mint-token.png b/docs/Solana-Co-Learn/module2/spl-token/mint-token-on-solana/img/mint-token.png similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/mint-token-on-solana/img/mint-token.png rename to docs/Solana-Co-Learn/module2/spl-token/mint-token-on-solana/img/mint-token.png diff --git a/docs/Solana-Co-Learn/week2/spl-token/the-token-program/README.md b/docs/Solana-Co-Learn/module2/spl-token/the-token-program/README.md similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/the-token-program/README.md rename to docs/Solana-Co-Learn/module2/spl-token/the-token-program/README.md diff --git a/docs/Solana-Co-Learn/week2/spl-token/the-token-program/img/account-relationships.png b/docs/Solana-Co-Learn/module2/spl-token/the-token-program/img/account-relationships.png similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/the-token-program/img/account-relationships.png rename to docs/Solana-Co-Learn/module2/spl-token/the-token-program/img/account-relationships.png diff --git a/docs/Solana-Co-Learn/week2/spl-token/the-token-program/img/mint-account.png b/docs/Solana-Co-Learn/module2/spl-token/the-token-program/img/mint-account.png similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/the-token-program/img/mint-account.png rename to docs/Solana-Co-Learn/module2/spl-token/the-token-program/img/mint-account.png diff --git a/docs/Solana-Co-Learn/week2/spl-token/the-token-program/img/token-account.png b/docs/Solana-Co-Learn/module2/spl-token/the-token-program/img/token-account.png similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/the-token-program/img/token-account.png rename to docs/Solana-Co-Learn/module2/spl-token/the-token-program/img/token-account.png diff --git a/docs/Solana-Co-Learn/week2/spl-token/the-token-program/img/token-program-frontend.png b/docs/Solana-Co-Learn/module2/spl-token/the-token-program/img/token-program-frontend.png similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/the-token-program/img/token-program-frontend.png rename to docs/Solana-Co-Learn/module2/spl-token/the-token-program/img/token-program-frontend.png diff --git a/docs/Solana-Co-Learn/week2/spl-token/the-token-program/img/usdc-token.png b/docs/Solana-Co-Learn/module2/spl-token/the-token-program/img/usdc-token.png similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/the-token-program/img/usdc-token.png rename to docs/Solana-Co-Learn/module2/spl-token/the-token-program/img/usdc-token.png diff --git a/docs/Solana-Co-Learn/week2/spl-token/token-metadata/README.md b/docs/Solana-Co-Learn/module2/spl-token/token-metadata/README.md similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/token-metadata/README.md rename to docs/Solana-Co-Learn/module2/spl-token/token-metadata/README.md diff --git a/docs/Solana-Co-Learn/week2/spl-token/token-metadata/img/fungible-token.png b/docs/Solana-Co-Learn/module2/spl-token/token-metadata/img/fungible-token.png similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/token-metadata/img/fungible-token.png rename to docs/Solana-Co-Learn/module2/spl-token/token-metadata/img/fungible-token.png diff --git a/docs/Solana-Co-Learn/week2/spl-token/token-metadata/img/metadata.png b/docs/Solana-Co-Learn/module2/spl-token/token-metadata/img/metadata.png similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/token-metadata/img/metadata.png rename to docs/Solana-Co-Learn/module2/spl-token/token-metadata/img/metadata.png diff --git a/docs/Solana-Co-Learn/week2/spl-token/token-metadata/img/token-metada-program.png b/docs/Solana-Co-Learn/module2/spl-token/token-metadata/img/token-metada-program.png similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/token-metadata/img/token-metada-program.png rename to docs/Solana-Co-Learn/module2/spl-token/token-metadata/img/token-metada-program.png diff --git a/docs/Solana-Co-Learn/week2/spl-token/token-metadata/img/token-metadata.png b/docs/Solana-Co-Learn/module2/spl-token/token-metadata/img/token-metadata.png similarity index 100% rename from docs/Solana-Co-Learn/week2/spl-token/token-metadata/img/token-metadata.png rename to docs/Solana-Co-Learn/module2/spl-token/token-metadata/img/token-metadata.png diff --git a/docs/Solana-Co-Learn/module3/README.md b/docs/Solana-Co-Learn/module3/README.md new file mode 100644 index 000000000..7c6fd022a --- /dev/null +++ b/docs/Solana-Co-Learn/module3/README.md @@ -0,0 +1,16 @@ +--- +sidebar_position: 94 +sidebar_label: Module3 +sidebar_class_name: green +--- + + +## Module3: Solana Module3 + +### Introduction to Rust + +### Native Solana Development + +### Security and validation + +### NFT staking diff --git a/docs/Solana-Co-Learn/week4/README.md b/docs/Solana-Co-Learn/module4/README.md similarity index 80% rename from docs/Solana-Co-Learn/week4/README.md rename to docs/Solana-Co-Learn/module4/README.md index 6a66f2b60..23eb4c4ca 100644 --- a/docs/Solana-Co-Learn/week4/README.md +++ b/docs/Solana-Co-Learn/module4/README.md @@ -1,10 +1,10 @@ --- sidebar_position: 95 -sidebar_label: week4 +sidebar_label: Module4 sidebar_class_name: green --- -# Solana中级程序开发 +# Solana Module4 ## 核心概念进阶 diff --git a/docs/Solana-Co-Learn/week5/README.md b/docs/Solana-Co-Learn/module5/README.md similarity index 94% rename from docs/Solana-Co-Learn/week5/README.md rename to docs/Solana-Co-Learn/module5/README.md index 952acb051..794e6f12e 100644 --- a/docs/Solana-Co-Learn/week5/README.md +++ b/docs/Solana-Co-Learn/module5/README.md @@ -1,6 +1,6 @@ --- sidebar_position: 96 -sidebar_label: week5 +sidebar_label: Module5 sidebar_class_name: green --- diff --git a/docs/Solana-Co-Learn/week6/README.md b/docs/Solana-Co-Learn/module6/README.md similarity index 88% rename from docs/Solana-Co-Learn/week6/README.md rename to docs/Solana-Co-Learn/module6/README.md index 94aca28a5..c7a9249e2 100644 --- a/docs/Solana-Co-Learn/week6/README.md +++ b/docs/Solana-Co-Learn/module6/README.md @@ -1,6 +1,6 @@ --- sidebar_position: 97 -sidebar_label: week6 +sidebar_label: Module6 sidebar_class_name: green --- diff --git a/docs/Solana-Co-Learn/modules/README.md b/docs/Solana-Co-Learn/modules/README.md new file mode 100644 index 000000000..ec70ed857 --- /dev/null +++ b/docs/Solana-Co-Learn/modules/README.md @@ -0,0 +1,34 @@ +--- +sidebar_position: 98 +sidebar_label: Modules +sidebar_class_name: green +--- + +## Solana program of Solidity by Solang Developement + +- Solidity 与PDAs +- Solidity 与 CPIs +- etc + +## Solana程序安全 + +- 如何处理程序安全模块 +- 签名人授权 +- Owner check +- 账户数据匹配 +- 重新初始化攻击 +- 重复的可变账户 +- Type cosplay +- Arbitrary CPIs +- 碰撞种子规范化 +- 关闭账户和恢复攻击 +- PDA sharing + +# 其他 + +- 如何在Solana中使用The Graph +- Oracles Pyth sdk的使用 +- TipLink 如何使用 +- 如何在quicknode申请RPC endpoint +- 如何在helius申请RPC endpoint +- etc ... diff --git a/docs/Solana-Co-Learn/week0/README.md b/docs/Solana-Co-Learn/week0/README.md deleted file mode 100644 index d2e3277cf..000000000 --- a/docs/Solana-Co-Learn/week0/README.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -sidebar_position: 0 -sidebar_label: week0 -sidebar_class_name: green ---- - -# 区块链基本概念介绍以及Solana基本概念原理介绍 - -## 区块链基本概念介绍 - - -## Solana核心概念原理介绍 - -- [账户:Solana的账户模型,包括如何管理密钥和签名](./accounts.md) -- [程序:Solana上的智能合约,可以用多种语言编写。](./progams.md) -- [交易:描述Solana上交易的生命周期和结构。](./transactions.md) -- [程序派生地址(PDAs): 了解PDAs的工作原理和用途。](./program-derived-addresses.md) -- [跨程序调用: 解释Solana上的合约如何互相交互。](./cpi.md) - -## 钱包和浏览器推荐 - -- 推荐开发使用Backpack钱包,因为此钱包支持自定义RPC地址。可以在[这里](https://www.backpack.app/)下载。 -- 这里浏览器推荐使用[Solana.fm](https://solana.fm/), 这个浏览器的可视化做的比官方的浏览器要好,Solana官方的浏览器[Explorer](https://explorer.solana.com/)。下面是Solana浏览器的汇总 - - [Solana Explorer](https://explorer.solana.com/) - - [Solana Fm](https://solana.fm/) - - [Solana Beach](https://solanabeach.io/) - - [Solscan](https://solscan.io/) - - [XRAY](https://xray.helius.xyz/) - - -## 本地程序开发 - -- [本地程序开发环境配置: 如何配置Solana的本地开发环境。](./local_program_development/local_program_development.md) -- 三种在Solana的上的不同实现方式 - - [原始Solana 合约开发: 使用Rust编写原始合约的方法。](./local_program_development/native_program_hello.md) - - [使用Anchor合约框架: 如何使用Anchor框架简化合约开发。](./local_program_development/anchor_program_hello.md) - - [使用solang编译器通过solidity语法实现hello, World: 介绍如何使用Solidity语言和solang编译器开发Solana合约。](./local_program_development/solang_program_hello.md) - - -## Solana钱包使用 - -- [Backpack🎒](./wallet-usage/README.md) diff --git a/docs/Solana-Co-Learn/week0/accounts.md b/docs/Solana-Co-Learn/week0/accounts.md deleted file mode 100644 index a11ee7fd0..000000000 --- a/docs/Solana-Co-Learn/week0/accounts.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -sidebar_position: 2 -sidebar_label: 账户 -sidebar_class_name: green ---- - -# 账户 - -在Solana中,账户是用来存储状态的。账户是Solana开发中非常重要的构成要素。 - -## Summary - -- 账户是用来存放数据的 -- 每个账户都有一个独一无二的地址 -- 每个账户大小不能超过**10MB** -- 程序派生账户(PDA accounts)大小不能超过**10KB** -- 程序派生账户(PDA accounts)可以用其对应程序进行签名 -- 账户大小在创建时固定,但可以使用[realloc](https://solanacookbook.com/references/programs.html#how-to-change-account-size)进行调整 -- 账户数据存储需要付租金 -- 默认的账户所有者是"系统程序" - -## 深入 - -### 账户模型 - -在Solana中有三类账户: - -- 数据账户,用来存储数据 -- 程序账户,用来存储可执行程序 -- 原生账户,指Solana上的原生程序,例如"System","Stake",以及"Vote"。 - -数据账户又分为两类: - -- 系统所有账户 -- 程序派生账户(PDA) - -每个数据账户都有一个地址(一般情况下是一个公钥)以及一个所有者(程序账户的地址)。 -下面详细列出一个账户存储的完整字段列表。 - -| 字段 | 描述 | -|------------|------------------------------------| -| lamports | 这个账户拥有的lamport(兰波特)数量 | -| owner | 这个账户的所有者程序 | -| executable | 这个账户成是否可以处理指令 | -| data | 这个账户存储的数据的字节码 | -| rent_epoch | 下一个需要付租金的epoch(代) | - -关于所有权,有几条重要的规则: - -- 只有账户的所有者才能改变账户中的数据,提取lamport -- 任何人都可以向数据账户中存入lamport -- 当账户中的数据被抹除之后,账户的所有者可以指定新的所有者 - -程序账户不储存状态。 - -例如,假设有一个计数程序,这个程序用来为一个计数器加数,你需要创建两个账户,一个用于存储程序的代码, -另一个用于存储计数器本身。 - -![](./account_example.png) - -为了避免账户被删除,必须付租金。 - -### 租金 - -在账户中存储数据需要花费SOL来维持,这部分花费的SOL被称作租金。如果你在一个账户中存入大于两年租金的SOL, -这个账户就可以被豁免付租。租金可以通过关闭账户的方式来取回。lamport会被返还回你的钱包。 - -租金在这两个不同的时间点被支取: - -1. 被一个交易引用的时候 -2. epoch更迭时 - -收取的租金,一定百分比会被销毁,另一部分会在每个slot(插槽)结束时被分配给投票账户。 - -当一个账户没有足够的余额支付租金时,这个账户会被释放,数据会被清除。 - -## 其他资料 - -- [Solana账户模型](https://solana.wiki/zh-cn/docs/account-model/#account-storage) -- [官方文档](https://docs.solana.com/developing/programming-model/accounts) -- [pencilflip账户主题](https://twitter.com/pencilflip/status/1452402100470644739) - -### 致谢 - -这些核心概念来源于Pencilflip. [在Twitter上关注他](https://twitter.com/intent/user?screen_name=pencilflip). diff --git a/docs/Solana-Co-Learn/week0/cpi.md b/docs/Solana-Co-Learn/week0/cpi.md deleted file mode 100644 index 9dc594ebc..000000000 --- a/docs/Solana-Co-Learn/week0/cpi.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -sidebar_position: 6 -sidebar_label: 跨程序调用(CPIs) -sidebar_class_name: green ---- - -# 跨程序调用(CPIs) - -跨程序调用(CPI)是一个程序直接调用另一个程序的方式,允许Solana程序的可组合性。就像任何客户端都可以使用JSON RPC调用任何程序一样,任何程序都可以通过CPI调用任何其他程序。CPI实质上将整个Solana生态系统转变为一个巨大的API,作为开发者,您可以随意使用。 - -本节的目的是提供对CPI的高级概述。有关更详细的解释、示例和演示,请参考下面的链接资源。 - -## Summary - -- 跨程序调用(CPI)是一个程序对另一个程序的调用,目标是调用的程序上的特定指令 -- CPI允许调用程序将其签名者特权扩展到被调用程序 -- 程序可以使用其指令中的 `invoke` 或 `invoke_signed` 来执行CPI -- 当所有必需的签名在调用之前都是可访问的,而无需PDA充当签署者时,使用 `invoke` -- 当需要来自调用程序的PDA作为CPI的签署者时,使用 `invoke_signed` -- 在将一个CPI发送给另一个程序后,被调用程序可以向其他程序发起进一步的CPI,最多可以达到4层深度 - - -## 深入挖掘 - -跨程序调用(CPI)使得Solana程序的可组合性成为可能,开发者可以利用和构建现有程序的指令。 - -要执行CPIs,请使用在 solana_program 包中找到的[invoke](https://docs.rs/solana-program/latest/solana_program/program/fn.invoke.html)或[invoke_signed](https://docs.rs/solana-program/latest/solana_program/program/fn.invoke_signed.html)函数。 - -```rust -// Used when there are not signatures for PDAs needed -pub fn invoke( - instruction: &Instruction, - account_infos: &[AccountInfo<'_>] -) -> ProgramResult - -// Used when a program must provide a 'signature' for a PDA, hence the signer_seeds parameter -pub fn invoke_signed( - instruction: &Instruction, - account_infos: &[AccountInfo<'_>], - signers_seeds: &[&[&[u8]]] -) -> ProgramResult -``` - -要创建一个CPI,您必须指定并构建一个关于被调用程序的指令,并提供该指令所需的账户列表。如果需要PDA作为签署者,在使用 `invoke_signed` 时还必须提供 `signers_seeds` 。 - -## CPI与 `invoke` - -`invoke` 函数用于创建不需要任何PDA作为签名者的CPI。在创建CPI时,Solana运行时将原始签名传递给被调用程序。 - -```rust -invoke( - &some_instruction, // instruction to invoke - &[account_one.clone(), account_two.clone()], // accounts required by instruction -)?; -``` - -## CPI与 `invoke_signed` - -要创建一个需要PDA作为签名者的CPI,请使用 `invoke_signed` -函数,并提供必要的种子来派生调用程序所需的PDA。 - - -```rust -invoke_signed( - &some_instruction, // instruction to invoke - &[account_one.clone(), pda.clone()], // accounts required by instruction, where one is a pda required as signer - &[signers_seeds], // seeds to derive pda -)?; -``` - -虽然PDA本身没有私钥,但它仍然可以通过CPI充当指令的签名者。为了验证PDA是否属于调用程序,生成PDA所需的种子必须包含在 signers_seeds 中。 - -Solana运行时将使用提供的种子和调用程序的 create_program_address 内部调用。然后将生成的PDA与指令中提供的地址进行比较。如果匹配成功,则认为PDA是有效的签名者。 - - -## CPI Instruction - -根据您所调用的程序,可能会有一个可用的包含辅助函数的包,用于创建 Instruction 。许多个人和组织在其程序旁边创建公开可用的包,以简化调用其程序的过程,并提供这些类型的函数。 - -CPI所需的 Instruction 类型的定义包括: - -- program_id - 执行指令的程序的公钥 -- accounts - 在执行指令期间可能被读取或写入的所有账户列表 -- data - 指令所需的指令数据 - -```rust -pub struct Instruction { - pub program_id: Pubkey, - pub accounts: Vec, - pub data: Vec, -} -``` - -AccountMeta 结构体的定义如下: - -```rust -pub struct AccountMeta { - pub pubkey: Pubkey, - pub is_signer: bool, - pub is_writable: bool, -} -``` - - -创建CPI时,请使用以下语法来指定每个账户的 AccountMeta : - -- AccountMeta::new - 表示可写 -- AccountMeta::new_readonly - 表示不可写入 -- (pubkey, true) - 表示账户是签署人 -- (pubkey, false) - 表示账户不是签署人 - -```rust -use solana_program::instruction::AccountMeta; - -let account_metas = vec![ - AccountMeta::new(account1_pubkey, true), - AccountMeta::new(account2_pubkey, false), - AccountMeta::new_readonly(account3_pubkey, false), - AccountMeta::new_readonly(account4_pubkey, true), -] -``` - - -## CPI AccountInfo - -要使用 invoke 和 invoke_signed ,还需要一个 account_infos 的列表。与指令中的 AccountMeta 列表类似,您需要包含程序调用时将从中读取或写入的每个账户的 AccountInfo 。 - - -参考一下, AccountInfo 结构体的定义如下: - -```rust -/// Account information -#[derive(Clone)] -pub struct AccountInfo<'a> { - /// Public key of the account - pub key: &'a Pubkey, - /// Was the transaction signed by this account's public key? - pub is_signer: bool, - /// Is the account writable? - pub is_writable: bool, - /// The lamports in the account. Modifiable by programs. - pub lamports: Rc>, - /// The data held in this account. Modifiable by programs. - pub data: Rc>, - /// Program that owns this account - pub owner: &'a Pubkey, - /// This account's data contains a loaded program (and is now read-only) - pub executable: bool, - /// The epoch at which this account will next owe rent - pub rent_epoch: Epoch, -} -``` - -您可以使用[Clone trait](https://docs.rs/solana-program/latest/solana_program/account_info/struct.AccountInfo.html#impl-Clone-for-AccountInfo%3C'a%3E)为每个所需的账户创建 [AccountInfo](https://docs.rs/solana-program/latest/solana_program/account_info/struct.AccountInfo.html)的副本,该特性在 solana_program 包中的AccountInfo结构体中实现。 - - -```rust -let accounts_infos = [ - account_one.clone(), - account_two.clone(), - account_three.clone(), -]; -``` - -虽然本节提供了CPI的高级概述,但更详细的解释、示例和演示可以在下面的链接资源中找到。 - - -## 其他资源 - -- [Official Documentation](https://docs.solana.com/developing/programming-model/calling-between-programs#cross-program-invocations) -- [Solana Cookbook Reference](https://solanacookbook.com/references/programs.html#how-to-do-cross-program-invocation) -- [Solana Course Native CPI Lesson](https://www.soldev.app/course/cpi) -- [Solana Course Anchor CPI Lesson](https://www.soldev.app/course/anchor-cpi) -- [Solana Developers Program Examples](https://github.com/solana-developers/program-examples/tree/main/basics/cross-program-invocation) diff --git a/docs/Solana-Co-Learn/week0/pda-curve.png b/docs/Solana-Co-Learn/week0/pda-curve.png deleted file mode 100644 index ad5ecf20d..000000000 Binary files a/docs/Solana-Co-Learn/week0/pda-curve.png and /dev/null differ diff --git a/docs/Solana-Co-Learn/week0/progams.md b/docs/Solana-Co-Learn/week0/progams.md deleted file mode 100644 index cbf4e06e0..000000000 --- a/docs/Solana-Co-Learn/week0/progams.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -sidebar_position: 3 -sidebar_label: 程序 -sidebar_class_name: green ---- - -# 程序 - -任何开发者都可以在Solana链上编写以及部署程序。Solana程序(在其他链上叫做智能合约),是所有链上活动的基础。 -链上的一切活动,从去中心化金融(DeFi),到非同质化代币(NFT),再到社交媒体,链上游戏,都由Solana程序所驱动。 - -## Summary要点 - -- 程序可以处理来自用户和其他程序的指令 -- 所有的程序都是**无状态**的:所有的和程序交互的数据都是存储在独立的[账户](./accounts.md)中。执行时,这些账户借由指令传入程序 -- 程序本身存储在标记为`executable`(可执行)的账户中。 -- 任何程序的所有者都是[BPF Loader](https://docs.solana.com/developing/runtime-facilities/programs#bpf-loader) and executed by the [Solana Runtime](https://docs.solana.com/developing/programming-model/runtime) -- 开发者通常使用Rust或C++来编写程序,也可以采用任何其他可以编译为[LLVM](https://llvm.org/)的[BPF](https://en.wikipedia.org/wiki/Berkeley_Packet_Filter)后端的语言 -- 所有的程序都有一个单独的入口点,指令的执行就是从这里开始的(亦即`process_instruction`)。参数须包括: - - `program_id`: `pubkey` (公钥) - - `accounts`: `array` (数组) - - `instruction_data`: `byte array` (字节数组) - -## 深入 - -与其他链不同,Solana将代码与数据完全分开。 - -程序需要访问的全部数据都存储在独立的账户中,在指令中这些账户需要以引用的方式传入。 - -这种模式使得一个通用的程序可以在不同的账户上运行,而不用为此额外部署程序。 - -这种模式的例子很常见,包括了"原生程序"以及"SPL程序"等。 - -### 原生程序和Solana程序库(SPL) - -Solana自带一系列程序,这些程序是链上交互的核心构成要素。 -这些程序分为[原生程序](https://docs.solana.com/developing/runtime-facilities/programs#bpf-loader) -和[Solana程序库(SPL程序)](https://spl.solana.com/) - -原生程序提供了运行验证节点(validator)所需的功能。原生程序中最广为人知的是[System Program](https://docs.solana.com/developing/runtime-facilities/programs#system-program)。 -这个程序负责管理建立新账户以及在两个账户之间转账SOL。 - -SPL程序定义了一系列的链上活动,其中包括针对代币的创建,交换,借贷,以及创建质押池,维护链上域名解析服务等。 -[SPL Token Program(SPL代币程序)](https://spl.solana.com/token)可以直接在命令行调用,其他的一些,如 -[Associated Token Account Program(关联代币账户程序)](https://spl.solana.com/associated-token-account), -则常被用于编写其他定制程序。 - -### 编写程序 - -编写Solana程序常用的是Rust和C++,但是也可以使用其他可以编译为LLVM的BPF后端的语言。 -最近[Neon Labs](https://neon-labs.org/)和[Solang](https://solang.readthedocs.io/en/latest/)发起了一个项目, -旨在建立Solana的[EVM](https://ethereum.org/en/developers/docs/evm/)兼容性,进而让开发者可以使用Solidity编写程序。 - -大部分Rust编写的程序(原始Solana程序结构)遵循以下架构: - -| 文件 | 描述 | -|----------------|-------------------------------------------------| -| lib.rs | 注册模块 | -| entrypoint.rs | 程序的入口点 | -| instruction.rs | 程序的API, 对指令的数据进行序列化与反序列化 | -| processor.rs | 程序的业务逻辑 | -| state.rs | 程序对象,对状态进行反序列化 | -| error.rs | 程序中制定的错误 | - -最近,[Anchor](https://project-serum.github.io/anchor/getting-started/introduction.html)逐渐成为了一个广受欢迎的Solana程序开发框架。 -Anchor是一个有态度的框架,与Ruby on Rails相似,这个框架旨在减少模式化的代码,将Rust开发流程中的序列化与反序列化过程流水线化。 - -在部署到Testnet(测试网)和Mainnet(主网)之前,程序在开发和测试阶段经常使用Localhost和Devnet(开发网)环境。 -Solana支持以下的几个环境: - -| 集群环境 | RPC连接URL | -|----------------------|---------------------------------------------------------------------------| -| Mainnet-beta | https://api.mainnet-beta.solana.com | -| Testnet | https://api.testnet.solana.com | -| Devnet | https://api.devnet.solana.com | -| Localhost | 默认端口:8899(例如,http://localhost:8899,http://192.168.1.88:8899) | - -这里的集群环境RPC URL,还可以使用第三方提供的服务,例如Quicknode,Achor, Helius。 - -部署到一个环境之后,客户端就可以通过对应集群的[RPC连接](https://docs.solana.com/developing/clients/jsonrpc-api)与链上程序进行交互。 - -### 部署程序 - -开发者可以使用[命令行](https://docs.solana.com/cli/deploy-a-program)部署程序: - -```bash -solana program deploy -``` - -部署程序的时候,程序会被编译为包含BPF字节码的[ELF共享对象](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format),并上传到Solana集群上。 -和Solana上其他的任何东西一样,程序储存在账户当中。唯一的特殊之处是,这些账户标记为`executable`(可执行),并且其所有者是"BPF Loader(BPF加载器)"。 -这个账户的地址被称为`program_id`,在后面的一切交易当中,用于指代这个程序。 - -Solana支持多种BPF加载器,最新的是[Upgradable BPF Loader](https://explorer.solana.com/address/BPFLoaderUpgradeab1e11111111111111111111111)。 -BPF加载器负责管理程序账户,让客户端可以通过其`program_id`对程序进行访问。每个程序都只有一个入口点,这里对指令进行处理。这里的参数须包括: -- `program_id`: `pubkey`(公钥) -- `accounts`: `array`(数组) -- `instruction_data`: `byte array`(字节数组) - -当程序被调用时,会在Solana运行库中被执行。 - -## 其他资料 - -- [官方文档](https://docs.solana.com/developing/on-chain-programs/overview) -- [SPL文档](https://spl.solana.com/) -- [Program Deploys by Justin Starry](https://jstarry.notion.site/Program-deploys-29780c48794c47308d5f138074dd9838) -- [Solana Starter Kit by Iron Addicted Dog](https://hackmd.io/@ironaddicteddog/solana-starter-kit) -- [Programming on Solana by Paulx](https://paulx.dev/blog/2021/01/14/programming-on-solana-an-introduction/) -- [An Introduction to the Solana Blockchain by Hana](https://2501babe.github.io/posts/solana101.html) -- [Anchor](https://project-serum.github.io/anchor/getting-started/introduction.html) diff --git a/docs/Solana-Co-Learn/week0/program-derived-addresses.md b/docs/Solana-Co-Learn/week0/program-derived-addresses.md deleted file mode 100644 index 69b650a23..000000000 --- a/docs/Solana-Co-Learn/week0/program-derived-addresses.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -sidebar_position: 5 -sidebar_label: 程序派生账户(PDA) -sidebar_class_name: green ---- - -# 程序派生账户(PDA) - -程序派生账户(PDA)是为了让特定程序可以控制一些账户而设计出来的。使用PDA,程序可以通过编程方法为一些地址进行签名,而不一定用到私钥。 -PDA是[Cross-Program Invocation(跨程序调用)](https://docs.solana.com/developing/programming-model/calling-between-programs#cross-program-invocations)的基础, -这个功能让Solana的app可以跟其他app进行组合。 - - -## Summary 要点 - -- PDA是长度为32的字节串,看起来和公钥很像,但是并没有与之对应的私钥 -- `findProgramAddress`可以针对一个programId(程序id)和seeds(种子)唯一确定的生成一个PDA。这里的seeds(种子)是一组指定的字节串 -- 一个跳跃(一个字节)用于将候选PDA推离ed25519椭圆曲线 -- 程序通过传入种子和跳跃参数,调用[invoke_signed](https://docs.solana.com/developing/programming-model/calling-between-programs#program-signed-accounts)为PDA进行签名 -- PDA只能被用来派生出这个地址的程序所签名 -- 除了允许程序为不同的instruction签名之外,PDA还提供了一个像哈希表一样的接口,用于建立账户索引 - - -# 深入 - -PDA是Solana程序开发的重要构成要素。有了PDA,程序可以为账户签名,同时保证没有外部用户能够产生针对同一个账户的有效签名。 -除了为账户签名外,一些程序还可以修改自己派生出来的PDA里的数据。 - -![Accounts matrix](./account-matrix.png) - -### 生成PDA - -为了更好的理解PDA的概念,可以认为PDA从技术角度讲并不是创建出来的,而是找到的。PDA由一组种子(例如字符串`"vote_account"`)以及程序id生成。 -这组种子和程序id接下来会放到sha256哈希函数中执行一遍,检查他们产生的公钥是否落在ed25519椭圆曲线上。 - -在程序id和种子上运行哈希函数时,有大约50%的概率会得到在一个落在椭圆曲线上有效的公钥。这种情况下,我们需要向输入当中加点扰动,略微改变输入,再进行重试。 -这个扰动的技术名称叫bump(跳跃)。在Solana中,我们一开始指定`bump = 255`,然后向下迭代bump,到254,253等等。知道我们能够找到一个不在椭圆曲线上的地址为止。 -这个看起来简陋的办法可以让我们每次生成PDA的时候都能够得到唯一确定的结果。 - -![落在椭圆曲线上的PDA](./pda-curve.png) - -### 与PDA交互 - -生成PDA的时候,`findProgramAddress`会把得到的地址和用来将PDA碰撞出椭圆曲线所用的bump都返回出来。 -有了这个bump,程序就可以对任何需要这个PDA地址的指令进行签名。签名时,程序调用`invoke_signed`函数,传入指令,账户列表,以及用于生成PDA的种子和bump。 -除了为指令签名之外,PDA在他自己通过`invoke_signed`函数被创建时,也需要签名。 - -在使用PDA编写程序时,经常会将这个bump[存储在这个账户本身的数据当中](https://github.com/solana-labs/solana-program-library/blob/78e29e9238e555967b9125799d7d420d7d12b959/token-swap/program/src/state.rs#L100)。 -这种机制可以让开发者轻易的对PDA进行验证,而不用重新在指令参数当中传入这个值。 - -## Other Resources -- [官方文档](https://docs.solana.com/developing/programming-model/calling-between-programs#program-derived-addresses) -- [Understanding Program Derived Addresses](https://www.brianfriel.xyz/understanding-program-derived-addresses/) diff --git a/docs/Solana-Co-Learn/week0/transactions.md b/docs/Solana-Co-Learn/week0/transactions.md deleted file mode 100644 index c38759eeb..000000000 --- a/docs/Solana-Co-Learn/week0/transactions.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -sidebar_position: 4 -sidebar_label: 交易 -sidebar_class_name: green ---- - -# 交易 - -客户端可以通过向一个集群提交交易来调用程序。一个交易可以包含多个指令,每个指令可以针对不同的程序。 -交易提交时,Solana[运行库](https://docs.solana.com/developing/programming-model/runtime)会自动的按顺序处理这些指令。 -如果某一个指令中的任何一个部分失败,整个交易就会失败。 - - -## Summary 要点 - -- 指令是Solana上最基本的操作单元 -- 每个指令都包含: - - `program_id`:所针对的程序的id - - `accounts`:需要读或写的全部账户组成的数组 - - `instruction_data`:向指定程序所传输的数据的字节码 -- 多个指令可以被打包进入同一个交易当中 -- 每个交易都包含: - - `instructions`:一个或多个指令 - - `blockhash`:最新的块哈希值 - - `signatures`:一个或多个签名 -- 指令会被自动的按顺序执行 -- 如果一个指令的任何一部分失败,整个交易就会失败 -- 交易的大小限制在1232字节以内 - -## 深入 - -在Solana运行库中,指令和交易都需要先指定全部需要读写访问的账户列表。 -通过事先指定账户列表,运行库可以对交易的执行做并行化处理。 - -当交易被提交到集群时,运行库会自动的按照顺序处理这些指令。对于每个指令,接收这个指令的程序会解析指令中的数据字段,在指定的账户上进行操作。 -程序要么执行成功,要么会返回一个错误码。如果返回了一个错误码,整个交易都会立即失败。 - -任何交易,只要针对一个账户扣除SOL,或者修改其中的数据,都需要这个账户拥有者的签名。 -在交易中,会被修改的账户都会被标记为`writable`(可写)。 -当交易的付费者支付了足够的租金和交易费用时,一个账户可以被存入SOL而不用这个账户拥有者的许可。 - -提交之前,每个交易需要引用一个[recent blockhash(最新块哈希)](https://docs.solana.com/developing/programming-model/transactions#recent-blockhash)。 -块哈希被用于去重,以及移除过期交易。一个块哈希的最大寿命是150个区块,成文时这个时间大约是1分钟19秒。 - -### 费用 - -Solana网络收取两种费用: -- [交易费](https://docs.solana.com/transaction_fees),用于向网络广播消息(亦即gas费) -- [租金](https://docs.solana.com/developing/programming-model/accounts#rent),用于向区块链上存储数据 - -在Solana中,交易费是确定的。并没有费率竞价的概念,用户无法通过增加交易费的方式增加自己的交易被打包进下一个区块的概率。 -在成文时,交易费只与交易所需的签名数量相关(参见`lamports_per_signature`),与交易所使用的资源无关。 -这是因为目前所有交易都有一个严格的1232字节的限制。 - -每个交易都需要至少有一个`writable`(可写)的账户,用于为交易签名。这个账户无论交易成功与否都需要为交易成本付费。 -如果付费者没有足够为交易付费的余额,这个交易就会被丢弃。 - -成文时,50%的交易费被出块的验证节点收取,剩下的50%被燃烧掉。这样的结构会激励验证节点在leader schedule(领导时间表)规定的属于自己的slot(插槽)中处理尽可能多的交易。 - -## Other Resources - -- [官方文档](https://docs.solana.com/developing/programming-model/transactions) -- [交易的结构](https://solana.wiki/docs/solidity-guide/transactions/#solana-transaction-structure) -- [Transaction Fees by Justin Starry](https://jstarry.notion.site/Transaction-Fees-f09387e6a8d84287aa16a34ecb58e239) -- [An Introduction to Solana by Hana](https://2501babe.github.io/posts/solana101.html) -- [Transaction Processing by Jito Labs](https://jito-labs.medium.com/solana-validator-101-transaction-processing-90bcdc271143) -- [Solana Transaction in Depth by Alex Miller](https://medium.com/@asmiller1989/solana-transactions-in-depth-1f7f7fe06ac2) diff --git a/docs/Solana-Co-Learn/week3/README.md b/docs/Solana-Co-Learn/week3/README.md deleted file mode 100644 index 7bbd300f6..000000000 --- a/docs/Solana-Co-Learn/week3/README.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -sidebar_position: 94 -sidebar_label: week3 -sidebar_class_name: green ---- - - -# Solana基础程序开发 - -- 创建一个基本程序,第一部分 - 处理指令数据 -- 创建一个基本程序,第二部分 - 状态管理 -- 创建一个基本程序,第三部分 - 基本安全和验证 diff --git a/docs/Solana-Co-Learn/week7/README.md b/docs/Solana-Co-Learn/week7/README.md deleted file mode 100644 index 8978fa05d..000000000 --- a/docs/Solana-Co-Learn/week7/README.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 98 -sidebar_label: week7 -sidebar_class_name: green ---- - -# Solana program of Solidity by Solang Developement - -- Solidity 与PDAs -- Solidity 与 CPIs -- etc diff --git a/docs/Solana-Co-Learn/week8/README.md b/docs/Solana-Co-Learn/week8/README.md deleted file mode 100644 index b152d7e95..000000000 --- a/docs/Solana-Co-Learn/week8/README.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -sidebar_position: 99 -sidebar_label: week8 -sidebar_class_name: green ---- - -# Solana程序安全 - -- 如何处理程序安全模块 -- 签名人授权 -- Owner check -- 账户数据匹配 -- 重新初始化攻击 -- 重复的可变账户 -- Type cosplay -- Arbitrary CPIs -- 碰撞种子规范化 -- 关闭账户和恢复攻击 -- PDA sharing diff --git a/docs/Solana-Co-Learn/week9/README.md b/docs/Solana-Co-Learn/week9/README.md deleted file mode 100644 index 0734aa010..000000000 --- a/docs/Solana-Co-Learn/week9/README.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -sidebar_position: 100 -sidebar_label: week9 -sidebar_class_name: green ---- - -# 其他 - -- 如何在Solana中使用The Graph -- Oracles Pyth sdk的使用 -- TipLink 如何使用 -- 如何在quicknode申请RPC endpoint -- 如何在helius申请RPC endpoint -- etc ... diff --git a/src/pages/index.js b/src/pages/index.js index 1d1bb64a9..b21f429a1 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -17,7 +17,7 @@ function HomepageHeader() {
+ to="docs/Solana-Co-Learn/module1/local_program_development/anchor_program_hello"> All in One Solana Tutorial - 5min ⏱️