RSK认证副驾驶(或RSK认证协作者,根据上下文,“Copilot”可灵活翻译为“副驾驶”或“协作者”等,以表达辅助或协作的含义)
为开发者提供基于根茎技术的信任自动化。
Attestation Copilot 将 Rootstock 的认证直接集成到实际工作流程中;从黑客马拉松到 CI/CD(持续集成/持续交付)流水线均可适用。 通过MCP CLI(管理控制台命令行界面)签发、验证和查询证明,或在关键事件发生时自动触发它们。
为何它存在
信任不应是事后才考虑的问题。 这个工具将证明(或认证)作为构建过程的一部分;让您能够在不中断开发流程的情况下,对人员、项目和操作进行链上验证。
特点/特性
- 链上证明 通过Rootstock认证服务(RAS)
- MCP集成 – 延伸现有的
rsk-mcp-server具备认证功能 - CLI 命令:
issue-attestation,verify-attestation,list-attestations,create-schema - 已准备好实现自动化 – 与GitHub Actions、webhooks或CI触发器配合使用
- 注重安全 – 遵循OWASP标准,采用加密密钥存储
- 示例流程当黑客马拉松项目获得批准时,自动颁发证明
建筑学
CLI Layer → MCP Agent → AttestationService → Rootstock Network- CLI 层面向用户的命令和自动化触发器
- MCP代理多工具工作流的模型上下文协议集成
- 认证服务核心业务逻辑与区块链交互
- Rootstock网络在测试网/主网上RAS合约
快速入门
安装
# Clone and setup
git clone https://github.com/Ad-Capital/rsk-attestation-copilot
cd rsk-attestation-copilot
npm install
# Build the project
npm run build
# Copy environment file and configure
cp .env.example .env
# Edit .env with your RSK RPC URLs and private key环境配置
# .env file
RSK_NETWORK=testnet
RSK_RPC_URL_TESTNET=https://rpc.testnet.rootstock.io/YOUR-API-KEY
PRIVATE_KEY=your_private_key_here
# Contract addresses (pre-configured)
RAS_CONTRACT_TESTNET=0xc300aeEadd60999933468738c9F5d7e9c0671e1C
RAS_CONTRACT_MAINNET=0x54c0726E9D2D57Bc37aD52C7E219a3229E0ee963基本用法
1. 创建模式(首次设置)
# Create a schema for hackathon projects
node build/index.js create-schema \
--network testnet \
--schema "string projectName,string submitterAddress,string repositoryUrl" \
--revocable true2. 发放证明书
# Issue an attestation for project approval
node build/index.js issue-attestation \
--network testnet \
--recipient 0x1234567890123456789012345678901234567890 \
--schema 0xYOUR_SCHEMA_UID \
--data "encoded_attestation_data"3. 验证证明
# Verify an existing attestation
node build/index.js verify-attestation \
--network testnet \
--uid 0xATTESTATION_UIDMCP 集成
此代理与现有的RSK MCP服务器生态系统集成:
可用工具
issue-attestation- 在Rootstock上颁发新的证明verify-attestation- 通过UID验证现有证明list-attestations- 使用过滤器查询证明create-schema- 创建新的证明架构revoke-attestation- 撤销现有证明
工具模式(或工具架构)
每个工具都使用Zod进行输入/输出验证:
// Issue attestation input
{
network: 'testnet' | 'mainnet',
recipient: string,
schema: string,
data: string,
expirationTime?: number,
revocable?: boolean
}自动化示例
黑客马拉松工作流程
项目获批时自动颁发证书:
import { HackathonAttestationWorkflow } from './examples/hackathon-workflow.js';
const workflow = new HackathonAttestationWorkflow({
projectSchema: '0xPROJECT_SCHEMA_UID',
approvalSchema: '0xAPPROVAL_SCHEMA_UID',
network: 'testnet'
});
// Issue attestation for approved project
const result = await workflow.attestProjectSubmission(project);GitHub Actions 集成
见 .github/workflows/attestation-demo.yml 用于CI/CD集成:
- name: Issue Project Attestation
env:
PRIVATE_KEY: ${{ secrets.RSK_PRIVATE_KEY }}
RSK_NETWORK: testnet
run: |
node build/index.js issue-attestation \
--network testnet \
--recipient ${{ github.actor }} \
--schema ${{ secrets.PROJECT_SCHEMA_UID }} \
--data "project_approved"发展
运行测试
npm test代码检查和格式化
npm run lint
npm run format安全检查
该项目包含OWASP安全扫描:
# Check dependencies for vulnerabilities
npm audit
# Scan for hardcoded secrets (in CI)
grep -r "private.*key\|secret" src/ --exclude-dir=node_modules合约地址
测试网
- RAS合同:
0xc300aeEadd60999933468738c9F5d7e9c0671e1C - 模式注册表:
0x679c62956cD2801ABaBF80e9D430F18859eea2D5
主网
- RAS合同:
0x54c0726E9D2D57Bc37aD52C7E219a3229E0ee963 - 模式注册表:
0xef29675d82Cc5967069D6D9c17F2719F67728F5b
安全最佳实践
- 私钥在静止状态下被加密(使用AES-256算法)
- 日志中的敏感数据会自动被模糊处理
- 所有远程通信均需使用HTTPS
- 使用Zod模式进行输入验证
- 在CI/CD中进行OWASP依赖项扫描
贡献
- 遵循清洁代码和SOLID原则
- 为所有新功能编写测试
- 确保安全扫描通过
- 更新新功能的相关文档
许可证
MIT 许可证 - 详情请参见 LICENSE 文件
