十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

bitcore-wallet-service生产部署完全指南:HTTPS、Cluster集群模式与限流配置实战

bitcore-wallet-service生产部署完全指南:HTTPS、Cluster集群模式与限流配置实战 bitcore-wallet-service生产部署完全指南HTTPS、Cluster集群模式与限流配置实战【免费下载链接】bitcore-wallet-serviceA multisig, HD Bitcoin and Bitcoin Cash wallet service. Used by Copay.项目地址: https://gitcode.com/gh_mirrors/bi/bitcore-wallet-servicebitcore-wallet-serviceBWS是驱动 Copay 的比特币/比特币现金多签名 HD 钱包服务端。本指南面向新手手把手带你完成生产部署的三大核心配置HTTPS 加密通信、Node Cluster 多进程集群模式、按 IP 限流防护让钱包服务从本地开发环境快速走向安全稳定的生产环境。 服务架构总览部署前先认识它的组件BWS 并非单一进程而是由start.sh一次性拉起 7 个 Node.js 服务组成各服务 PID 写入pids/目录、日志写入logs/目录服务入口文件端口分布式锁Lockerlocker/locker.js3231消息总线Message Brokermessagebroker/messagebroker.js3380区块链监控bcmonitor/bcmonitor.js—邮件通知emailservice/emailservice.js—推送通知pushnotificationsservice/pushnotificationsservice.js—法币汇率fiatrateservice/fiatrateservice.js—主 API 服务bwsbws.js3232 前置条件MongoDB2.6默认运行在 27017 端口。完整安装说明见installation.md。1️⃣ 一次准备克隆与安装git clone https://gitcode.com/gh_mirrors/bi/bitcore-wallet-service cd bitcore-wallet-service npm install所有配置集中在根目录 config.js 中MongoDB 连接storageOpts、Locker 地址lockOpts、消息总线messageBrokerOpts、区块链浏览器blockchainExplorerOpts等改完直接启动即可生效。 配置 HTTPS让钱包通信全面加密bws.js 启动时会读取config.js的https开关第 28-43 行自动切换为 Node 的https模块并加载证书。只需解开以下注释// config.js https: true, privateKeyFile: private.pem, certificateFile: cert.pem, // 若证书链不被 Node 默认信任如自签/中间 CA补充完整证书链 CAinter1: COMODORSADomainValidationSecureServerCA.crt, CAinter2: COMODORSAAddTrustCA.crt, CAroot: AddTrustExternalCARoot.crt,要点额外指定ciphers时服务端会启用honorCipherOrder按你给的顺序强制加密套件若由 Nginx 等反向代理终结 TLSBWS 本身保持https: false即可。⚡ 开启 Cluster 集群模式按 CPU 数扩吞吐、进程崩溃自动复活bws.js 第 70-92 行的集群逻辑非常清晰cluster: true时主进程按 CPU 核心数或clusterInstances逐个fork()出 worker监听exit事件任意 worker 崩溃会被自动 fork 替换并记录错误日志⚠️ 两个硬性依赖集群模式下必须配置 locker server 与 message broker server否则启动即抛错When running in cluster mode, locker server need to be configured。因为进程间必须共享锁与消息发布订阅不能只靠单进程内存。// config.js cluster: true, clusterInstances: 4, // 不设置则默认使用全部 CPU 核心数 lockOpts: { lockerServer: { host: localhost, port: 3231 } }, messageBrokerOpts: { messageBrokerServer: { url: http://localhost:3380 } },⚠️ 开启集群前先确认npm start启动的locker和messagebroker两个服务真正就绪否则 BWS 主进程会立即失败。小贴士端口支持环境变量覆盖process.env.BWS_PORT优先级高于config.port默认 3232多环境部署时很实用。️ 限流配置内置 IP 节流防刷钱包创建lib/expressapp.js 基于express-rate-limit内置了两组限流器默认对「创建钱包」和「费率估算」两类 API 按 IP 生效限流对象API 路由时间窗口延迟起始次数每次延迟封禁阈值创建钱包POST /v1 或 v2 /wallets/1 小时8 次后3 秒15 次费率估算GET /v1 或 v2 /feelevels/10 分钟5 次后0.3 秒10 次默认值定义在 lib/common/defaults.js 第 106-121 行的Defaults.RateLimitcreateWallet: { windowMs: 60 * 60 * 1000, // 1 小时窗口 delayAfter: 8, // 第 8 次请求后开始减速 delayMs: 3000, // 每次追加 3 秒延迟 max: 15, // 超过 15 次直接封禁 1 小时 message: Too many wallets created from this IP, please try again after an hour, }调整阈值直接修改defaults.js对应字段即可限流器仅在!opts.ignoreRateLimiter时启用开发/测试环境可借此跳过。 启动、停止与验证npm start # 执行 start.shnohup 后台启动 7 个服务管理 pid 与日志 npm stop # 执行 stop.sh按 pid 文件逐个停止验证清单logs/bws.log出现 BWS running [Instance:0..3]说明集群 worker 全部就绪curl -k https://你的域名:3232/bws/api/v1/version/应返回{serviceVersion:2.5.1}用ps确认 worker 进程数与clusterInstances一致。 所有 API 挂载在config.js的basePath默认/bws/api前缀之下健康检查时别漏了路径。✅ 生产部署检查清单MongoDB 可连通数据库名bws证书私钥权限受限防止泄露集群模式下 locker3231与 messagebroker3380运行正常限流阈值已按业务量调整logs/、pids/纳入监控防火墙仅开放 3232对外3231/3380 保持内网按照以上三步——HTTPS、Cluster、限流——配置到位后bitcore-wallet-service 就具备了面向真实用户的生产服务能力。【免费下载链接】bitcore-wallet-serviceA multisig, HD Bitcoin and Bitcoin Cash wallet service. Used by Copay.项目地址: https://gitcode.com/gh_mirrors/bi/bitcore-wallet-service创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表