数据服务提供者的REST API
Provider是Ocean Protocol技术栈的一部分,提供数据服务的REST API。该组件功能完整,当前为BETA版本。其核心作用是作为数据服务的中间层,管理数据访问流程,确保数据交易的安全性和合规性。
Provider适用于以下场景:
快速启动
使用rinkeby网络和远程元数据存储实例([***]
bashgit clone git@github.com:oceanprotocol/provider.git cd provider/ python3 -m venv venv source venv/bin/activate pip install -r requirements_dev.txt cp .env.example .env flask run --port=8030
详细步骤
1. 克隆仓库
bashgit clone git@github.com:oceanprotocol/provider.git cd provider/
2. 虚拟环境(可选)
建议在本地运行前设置虚拟环境:
bashvirtualenv venv -p python3.8 # 或:python -m venv venv source venv/bin/activate
3. 安装依赖
安装所有必要依赖:
bashpip install -r requirements_dev.txt
4. 依赖项
元数据存储(Aquarius):选择以下任一方式:
https://aquarius.marketplace.dev-ocean.com。此时需在 config.ini 文件中用相应URL替换 aquarius.url 选项。***网络:选择以下任一方式:
确保Ocean合约(https://github.com/oceanprotocol/contracts%EF%BC%89%E5%B7%B2%E9%83%A8%E7%BD%B2%E5%88%B0%E6%89%80%E9%80%89%E7%BD%91%E7%BB%9C%E3%80%82%E5%9C%A8 config.ini 文件中用正确的网络URL更新 network 选项(目前必须是URL,未来将支持简单网络名称如mainnet)。
5. 启动Provider服务器
在 .env 文件中添加相应环境变量,示例如下:
FLASK_APP=ocean_provider/run.py PROVIDER_ADDRESS=你的以太坊地址 PROVIDER_PRIVATE_KEY=私钥或包含chain_id到私钥对的字典字符串 PROVIDER_FEE_TOKEN=用于收取费用的ERC20代币地址或包含chain_id到代币地址对的字典字符串
你可能还需要设置 FLASK_ENV=development。然后运行:
bashflask run --port=8030
有关端点和负载的详细信息,请参考 API.md 文件。
环境变量
REQUEST_RETRIES:定义文件下载的重试次数(考虑网络故障和连接问题),默认为1(一次尝试,无重试)RBAC_SERVER_URL:定义RBAC权限服务器的URL,默认为None(无特殊权限)PRIVATE_PROVIDER:若设置,会在RBAC请求中添加"providerAccess": "private"键值对REDIS_CONNECTION:定义Redis连接URL,默认为None(无Redis连接时使用SQLite数据库)TEST_PRIVATE_KEY1 和 TEST_PRIVATE_KEY2:发布者和消费者测试用的***私钥OPERATOR_SERVICE_URL:定义与C2D的连接LOG_CFG 和 LOG_LEVEL:分别定义日志文件位置和日志级别IPFS_GATEWAY:定义用于解析URL的IPFS网关ARWEAVE_GATEWAY:定义用于解析Arweave交易ID的Arweave网关AUTHORIZED_DECRYPTERS:允许解密链数据的授权地址列表,用于限制访问(如自定义Aquarius实例),默认为空(允许所有解密者)USE_CHAIN_PROOF 或 USE_HTTP_PROOF:设置保存下载证明信息的机制。若USE_CHAIN_PROOF为真值,证明将发送到链上;USE_HTTP_PROOF需配置接受POST请求的HTTP端点MAX_CHECKSUM_LENGTH:定义需要校验和的文件最大长度,若文件大小超过此值,则不计算校验和若你是贡献者,请确保使用 pre-commit install 命令安装预提交钩子。这将确保提交前代码导入已排序且格式正确。我们使用 black、isort 和 flake8 保持代码整洁。
还可使用 licenseheaders -t .copyright.tmpl -x venv 命令为提交添加许可证头(将"venv"替换为本地虚拟环境路径)。此选项不作为预提交钩子,因为执行时间较长。
要发布Provider的新版本,请遵循 发布流程 中描述的步骤。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务