代码Clone git clone https://github.com/solana-program/token.git cd token git checkout program@v3.5.0 基础环境 # 安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash source ~/.bashrc # 安装node nvm install 20 node -v # 安装pnpm npm install -g pnpm 安装依赖 pnpm install 编译 cd program/ cargo build-sbf 默认编译可能出现以下错误 [2025-04-25T09:39:35.004769959Z ERROR cargo_build_sbf] Failed to obtain package metadata: `cargo metadata` exited with an error: error: current package believes it's in a workspace when it's not: current: /mnt/d/github/token/program/Cargo.toml workspace: /mnt/d/github/token/Cargo.toml this may be fixable by adding `program` to the `workspace.members` array of the manifest located at: /mnt/d/github/token/Cargo.toml Alternatively, to keep it out of the workspace, add the package to the `workspace.exclude` array, or add an empty `[workspace]` table to the package's manifest. 解决 在 program 目录的 Cargo.toml 文件中添加空的 [workspace] 表 修改 program\Cargo.toml，在第一行增加 [workspace] // 增加此行 [package] name = "spl-token" version = "3.5.0" ... 执行成功后，程序编译出现在program\target\deploy\spl_token.so
https://github.com/punkpeye/awesome-mcp-servers/blob/main/README-zh.md https://github.com/yzfly/Awesome-MCP-ZH https://github.com/punkpeye/awesome-mcp-clients https://mcp.so/
no_std与 Secp256k1 曲线兼容的 ECDSA 实现，专为在 Solana 生态系统中使用而设计。 概述 该库使用 Secp256k1 曲线提供了 ECDSA 签名的轻量级实现。它旨在与各种环境兼容no_std，因此适用于嵌入式系统、WebAssembly 模块以及其他缺乏标准库支持的受限环境。 特征 no_std 兼容：在没有 Rust 标准库的环境中工作 签名创建：使用各种方法生成 ECDSA 签名： RFC6979 确定性随机数生成 自定义临时密钥 (k) 支持 预散列消息支持 签名验证：根据公钥验证 ECDSA 签名 签名规范化：使用可选的 s 值规范化（低 S）处理签名的可延展性 最小依赖solana_secp256k1：建立在原语之上 https://github.com/deanmlittle/solana-secp256k1-ecdsa
前置总结 技术目的：以太坊网络扩容面临的几个长期瓶颈，包括稳定的数据可用性采样、确保区块生产保持竞争力，以及零知识EVM证明。在智能合约中实施RISC-V架构将保持区块生产市场的竞争力，并提高执行层零知识功能的效率。转向RISC-V将使 Ethereum 与 Solana 和Sui等更新的区块链更具竞争力 技术可行性：从《RISC-V 与以太坊虚拟机集成的性能和可行性分析》分析和测试结果应该可行 难度和风险：需要执行层的重新设计，社区大概评估整体需要数年的时间，需要大量资源，并可能出现新的漏洞，并且开发人员和项目将如何通过旧的智能控制trac移植到新系统存在问题。当涉及向后兼容性时，这可能会引起很多麻烦。基本等同于个完整的新链 现状：目前消息来看，Vitalik只是计划考虑信标链运行RISC-V，相当于技术调研初期，对于以太坊目前现状，可以主要为了造势，稳币价。对于以太坊是否真正开始投入开发支持，可能等先观望下了 RISC-V 与以太坊虚拟机集成的性能和可行性分析 https://hackmd.io/@0xdeveloperuche/Hk18BWxkxl RISC-V与EVM相关项目： evm https://github.com/developeruche/riscv-evm-experiment/tree/main/crates/research-draft zkevm https://verified-zkevm.org/ https://argument.xyz/blog/riscv-good-bad/
系统初始化配置 https://docs.solanalabs.com/operations/guides/validator-start#system-tuning sudo bash -c "cat >/etc/sysctl.d/21-agave-validator.conf <<EOF # Increase UDP buffer sizes net.core.rmem_default = 134217728 net.core.rmem_max = 134217728 net.core.wmem_default = 134217728 net.core.wmem_max = 134217728 # Increase memory mapped files limit vm.max_map_count = 1000000 # Increase number of allowed open file descriptors fs.nr_open = 1000000 EOF" sudo sysctl -p /etc/sysctl.d/21-agave-validator.conf sudo bash -c "cat >/etc/security/limits.d/90-solana-nofiles.conf <<EOF # Increase process file descriptor count limit * - nofile 1000000 EOF"
https://solanahcl.org/ https://github.com/solanahcl/solanahcl https://docs.anza.xyz/operations/requirements
https://github.com/coral-xyz/multisig/tree/master 执行任意 Solana 交易的多重签名示例。 此程序允许多重签名管理任何常规公钥可以管理的内容。您可以将多重签名用作 BPF 程序升级授权、铸币授权等。 要使用，必须首先创建一个Multisig帐户，并指定两个重要参数： 所有者——为多重签名签署交易的地址集。 阈值——执行交易所需的签名者数量。 一旦Multisig创建了帐户，就可以创建一个Transaction 帐户，并指定正常 solana 交易的参数。 为了签署，所有者应该调用批准指令，最后，一旦有足够多（即阈值）的所有者签署，就调用执行交易 (execute_transaction)。
docker-compose.yml version: "3.9" services: main: image: b3log/siyuan command: ['--workspace=/siyuan/workspace', '--accessAuthCode=652511569'] ports: - 6806:6806 volumes: - /mnt/nvme0n1-4/docker/volumes/siyuan:/siyuan/workspace restart: unless-stopped environment: - TZ=${TimeZone} - PUID=1000 - PGID=1000 docker-compose up -d 参考 https://blog.csdn.net/u013564470/article/details/143799184 https://blog.imbhj.com/archives/Ims5hvFf https://hub.docker.com/r/b3log/siyuan https://github.com/siyuan-note/siyuan/blob/master/README_zh_CN.md
雷池分为国内和海外两个版本 国内 https://docs.waf-ce.chaitin.cn/zh/%E4%B8%8A%E6%89%8B%E6%8C%87%E5%8D%97/%E5%8D%87%E7%BA%A7%E9%9B%B7%E6%B1%A0 在线升级 bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)" 如果镜像pull超时可以尝试离线安装 mv compose.yaml compose.yaml.old wget "https://waf-ce.chaitin.cn/release/latest/compose.yaml" --no-check-certificate -O compose.yaml sed -i "s/IMAGE_TAG=.*/IMAGE_TAG=latest/g" ".env" grep "SAFELINE_DIR" ".env" > /dev/null || echo "SAFELINE_DIR=$(pwd)" >> ".env" grep "IMAGE_TAG" ".env" > /dev/null || echo "IMAGE_TAG=latest" >> ".env" grep "MGT_PORT" ".env" > /dev/null || echo "MGT_PORT=9443" >> ".env" grep "POSTGRES_PASSWORD" ".env" > /dev/null || echo "POSTGRES_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 32)" >> ".env" grep "SUBNET_PREFIX" ".env" > /dev/null || echo "SUBNET_PREFIX=172.22.222" >> ".env" grep "IMAGE_PREFIX" ".env" >/dev/null || echo "IMAGE_PREFIX=chaitin" >>".env" grep "ARCH_SUFFIX" ".env" >/dev/null || echo "ARCH_SUFFIX=" >>".env" grep "RELEASE" ".env" >/dev/null || echo "RELEASE=" >>".env" 下载镜像包 https://demo.waf-ce.chaitin.cn/image.tar.gz 启动 docker compose down --remove-orphans docker compose up -d 海外 如果部署服务器在海外，可以尝试，海外部署步骤 https://docs.waf.chaitin.com/en/GetStarted/Upgrade bash -c "$(curl -fsSLk https://waf.chaitin.com/release/latest/manager.sh)" -- --en 目前官方没有提供海外的镜像离线包，仅支持在线升级 注意 如果之前是使用国内的安装步骤，想切换为海外镜像，需要修改 .env文件，中的IMAGE_PREFIX IMAGE_PREFIX=chaitin
前期调研 目前v3已经停止升级，优先使用v4版本 Squads-Protocol 官方app.squads.so前端不开源，只开源了精简版本 squads-backup-kit squads-backup-kit 前端不支持创建，只支持管理已有多签账户地址 首次创建可以使用Squads CLI进行创建 v4程序地址：SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf squads-backup-kit GitHub：https://github.com/Squads-Protocol/public-v4-client 在线地址：https://backup.app.squads.so/ Squads CLI 使用 https://docs.squads.so/main/development/cli/installation https://docs.squads.so/main/development/cli/commands 创建keypair mkdir squads-multisig cd squads-multisig solana-keygen new -o ./keypair-multisig.json solana-keygen new -o ./keypair-1.json solana-keygen new -o ./keypair-2.json solana-keygen new -o ./keypair-3.json 生成测试账户地址 89CefQR7XpdSKsDAFMZVUu3ipqiW35BceuahoE8CiAxz 56uqkuNMGsozcYDuzKfkqUEPqDLQfXRncvoH73xHzHnt G3YLqbreJj1spvBMajv8qgPXVzZ1WaN34LDn7ChFdAPY Hj3KcgcuvcHRM9or6SbuLuTV8Xe5pDttKk3nQSXzP65d 分别给上面4个账户地址转1SOL,为后面演示 2/3多签测试做准备 创建多重签名 squads-multisig-cli multisig-create --rpc-url <RPC_URL> --program-id <PROGRAM_ID> --keypair <KEYPAIR_PATH> --config-authority <CONFIG_AUTHORITY> --members <MEMBER_1> <MEMBER_2> ... --threshold <THRESHOLD> multisig-create参数 --rpc-url ：（可选）Solana RPC 端点的 URL。如果未指定，则默认为主网。 --program-id ：（可选）多重签名程序的 ID。如未指定，则默认为标准 ID。 --keypair ：密钥对文件的路径。 --config-authority ：（可选）程序配置机构的地址。 --members <MEMBER_...>：成员公钥列表，以空格分隔。 --threshold ：执行多重签名交易所需的签名阈值数量。 测试创建 squads-multisig-cli multisig-create --rpc-url https://api.devnet.solana.com --program-id SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf --keypair ./keypair-multisig.json --members 56uqkuNMGsozcYDuzKfkqUEPqDLQfXRncvoH73xHzHnt,7 --members G3YLqbreJj1spvBMajv8qgPXVzZ1WaN34LDn7ChFdAPY,7 --members Hj3KcgcuvcHRM9or6SbuLuTV8Xe5pDttKk3nQSXzP65d,7 --threshold 2 threshold为2，则代表 2/3通过 权限是数字，映射到以下内容： 提议人 -1 投票人 -2 执行人 -4 上述所有的 -7 或者任何权限组合（即提议者和投票者3） 例如 --members FcBpwMquaMURbYwpRFUrBrYgFwJzfWiBEGfHLbik1Wsm,7 执行命令后返回 https://solscan.io/tx/XRFQkd2HN4mFoQvKa2FUdKYr2WkETZmxAYbCkM87VjxFDBgUWCEQYEixPcodpQtu1kv8cVgu1MP5pQpcU995U9A?cluster=devnet You're about to create a multisig, please review the details: RPC Cluster URL: https://api.devnet.solana.com Program ID: SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf Your Public Key: 89CefQR7XpdSKsDAFMZVUu3ipqiW35BceuahoE8CiAxz Config Parameters Config Authority: None Threshold: 2 Rent Collector: None Members amount: 3 Do you want to proceed? yes ⠒ Sending transaction... Transaction confirmed: XRFQkd2HN4mFoQvKa2FUdKYr2WkETZmxAYbCkM87VjxFDBgUWCEQYEixPcodpQtu1kv8cVgu1MP5pQpcU995U9A Created Multisig: 9VrXzJ8zQ8PZQ1pBnzbfNVB8cJKneU6rdrjwUKypAybE. Signature: XRFQkd2HN4mFoQvKa2FUdKYr2WkETZmxAYbCkM87VjxFDBgUWCEQYEixPcodpQtu1kv8cVgu1MP5pQpcU995U9A 多签钱包地址为：9VrXzJ8zQ8PZQ1pBnzbfNVB8cJKneU6rdrjwUKypAybE 使用前端工具进行测试 https://backup.app.squads.so/ 查看当前多签配置 https://backup.app.squads.so/#/config/ 修改配置交易创建 squads-multisig-cli config-transaction-create --rpc-url <RPC_URL> --program-id <PROGRAM_ID> --keypair <KEYPAIR_PATH> --multisig-pubkey <MULTISIG_PUBLIC_KEY> --action <ACTION> [--memo <MEMO>] 添加新成员 squads-multisig-cli config-transaction-create --rpc-url https://api.devnet.solana.com --program-id SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf --keypair ./keypair-multisig.json --multisig-pubkey 89CefQR7XpdSKsDAFMZVUu3ipqiW35BceuahoE8CiAxz --action "AddMember 56uqkuNMGsozcYDuzKfkqUEPqDLQfXRncvoH73xHzHnt 7" --memo "AddMember 56uqkuNMGsozcYDuzKfkqUEPqDLQfXRncvoH73xHzHnt 7" 其余修改操作参考 https://docs.squads.so/main/development/cli/commands 私有链部署 对于私有链部署，首先需要初始化程序so solana program -u m dump SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf ./roles/svm-node/files/spl/squads-protocol-v4.so solana-genesis --upgradeable-program SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf BPFLoaderUpgradeab1e11111111111111111111111 {{path}}/config/spl/squads-protocol-v4.so {{upgradeAccount}} 链启动后，创建多签交易报错 ⠂ Sending transaction... thread 'main' panicked at /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/squads-multisig-cli-0.1.3/src/command/multisig_create.rs:141:14: Failed to fetch program config account: Error { request: None, kind: RpcError(ForUser("AccountNotFound: pubkey=BSTq9w3kZwNwpBXJEvTZz2G9ZTNyKBvoSeXMvwb4cNZr")) } 分析：缺少内部初始化账户 获取账户地址Data {注意需要base64格式} curl https://api.devnet.solana.com -s -X \ POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0", "id": 1, "method": "getAccountInfo", "params": [ "BSTq9w3kZwNwpBXJEvTZz2G9ZTNyKBvoSeXMvwb4cNZr", { "encoding": "base64" } ] } ' | jq 返回 { "jsonrpc": "2.0", "result": { "context": { "apiVersion": "2.2.3", "slot": 373312028 }, "value": { "data": [ "xNJa55CVjD/y4DkJcttfEtTBz1IxzaY5194JtJU/4aL4ooeXbGx+0AAAAAAAAAAA8uA5CXLbXxLUwc9SMc2mOdfeCbSVP+Gi+KKHl2xsftAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "base64" ], "executable": false, "lamports": 1893120, "owner": "SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf", "rentEpoch": 18446744073709551615, "space": 144 } }, "id": 1 } 调整初始化参数，加载预设账户地址和data solana-genesis --primordial-accounts-file accounts.json accounts.json { "BSTq9w3kZwNwpBXJEvTZz2G9ZTNyKBvoSeXMvwb4cNZr": { "balance": 100000000000, "owner": "SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf", "executable": false, "data": "xNJa55CVjD/y4DkJcttfEtTBz1IxzaY5194JtJU/4aL4ooeXbGx+0AAAAAAAAAAA8uA5CXLbXxLUwc9SMc2mOdfeCbSVP+Gi+KKHl2xsftAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } } 再次确认私链账户地址与solana devnet data数据一致 solana account BSTq9w3kZwNwpBXJEvTZz2G9ZTNyKBvoSeXMvwb4cNZr --url https://api.devnet.solana.com 参考 https://docs.eclipse.xyz/developers/developer-tooling/squads-multisig https://docs.squads.so/main/additional-resources/what-if-the-squads-app-goes-down https://github.com/assetCLI/assetCLI-init/blob/feb-25/local-dev.sh