https://solanahcl.org/
https://github.com/solanahcl/solanahcl
https://docs.anza.xyz/operations/requirements
Surou 发布的文章
https://github.com/coral-xyz/multisig/tree/master
执行任意 Solana 交易的多重签名示例。
此程序允许多重签名管理任何常规公钥可以管理的内容。您可以将多重签名用作 BPF 程序升级授权、铸币授权等。
要使用,必须首先创建一个Multisig帐户,并指定两个重要参数:
一旦Multisig创建了帐户,就可以创建一个Transaction 帐户,并指定正常 solana 交易的参数。
为了签署,所有者应该调用批准指令,最后,一旦有足够多(即阈值)的所有者签署,就调用执行交易 (execute_transaction)。
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
雷池分为国内和海外两个版本
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 SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCfGitHub:https://github.com/Squads-Protocol/public-v4-client
在线地址:https://backup.app.squads.so/
https://docs.squads.so/main/development/cli/installation
https://docs.squads.so/main/development/cli/commands
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>
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通过
权限是数字,映射到以下内容:
或者任何权限组合(即提议者和投票者3)
例如 --members FcBpwMquaMURbYwpRFUrBrYgFwJzfWiBEGfHLbik1Wsm,7
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/#/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
{
"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