CompletionStream
账本API
<span class="x2mdx-ref-breadcrumb-separator">›</span>
<a href="/zh/docs/canton/reference-grpc-ledger-api-reference-details">gRPC API</a>
<span class="x2mdx-ref-breadcrumb-separator">›</span>
<a href="/zh/docs/canton/reference-grpc-ledger-api-reference-com-daml-ledger-api-v2">v2</a>
<span class="x2mdx-ref-breadcrumb-separator">›</span>
<span>完成流</span>
</div>
<div class="x2mdx-ref-hero">
<p class="x2mdx-ref-eyebrow">com.daml.ledger.api.v2</p>
<h1 class="x2mdx-ref-title">CompletionStream</h1>
<div class="x2mdx-ref-badges">
<span class="x2mdx-ref-badge x2mdx-ref-badge--protocol">gRPC</span>
<span class="x2mdx-ref-badge x2mdx-ref-badge--linked">自 3.4.4 起</span>
</div>
</div>
<div class="x2mdx-ref-operation-bar">
<span class="x2mdx-ref-operation-method x2mdx-ref-operation-method--rpc">RPC</span>
<code>/com.daml.ledger.api.v2.CommandCompletionService/CompletionStream</code>
</div>
## 协议详细信息
<dl class="x2mdx-ref-meta-grid">
<div class="x2mdx-ref-meta-item">
<dt>协议</dt>
<dd>gRPC</dd>
</div>
<div class="x2mdx-ref-meta-item">
<dt>服务</dt>
<dd>命令完成服务</dd>
</div>
<div class="x2mdx-ref-meta-item">
<dt>RPC</dt>
<dd>完成流</dd>
</div>
<div class="x2mdx-ref-meta-item">
<dt>客户端流</dt>
<dd>否</dd>
</div>
<div class="x2mdx-ref-meta-item">
<dt>服务器流</dt>
<dd>是</dd>
</div>
</dl>
## 输入
<div class="x2mdx-ref-panel">
<div class="x2mdx-ref-panel-head">
<h3>CompletionStreamRequest</h3>
</div>
<dl class="x2mdx-ref-meta-grid">
<div class="x2mdx-ref-meta-item">
<dt>消息</dt>
<dd>com.daml.ledger.api.v2.CompletionStreamRequest</dd>
</div>
<div class="x2mdx-ref-meta-item">
<dt>客户端流</dt>
<dd>否</dd>
</div>
</dl>
<div class="x2mdx-ref-fields">
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">用户\_id</code>
<span class="x2mdx-ref-type-badge">字符串</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">各方</code>
<span class="x2mdx-ref-type-badge">重复字符串</span>
</div>
</div><div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">开始\_exclusive</code>
<span class="x2mdx-ref-type-badge">int64</span>
</div>
</div>
</div>
</div>
## 输出
<div class="x2mdx-ref-panel">
<div class="x2mdx-ref-panel-head">
<h3>CompletionStreamResponse</h3>
</div>
<dl class="x2mdx-ref-meta-grid">
<div class="x2mdx-ref-meta-item">
<dt>消息</dt>
<dd>com.daml.ledger.api.v2.CompletionStreamResponse</dd>
</div>
<div class="x2mdx-ref-meta-item">
<dt>服务器流</dt>
<dd>是</dd>
</div>
</dl>
<div class="x2mdx-ref-fields">
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">完成</code>
<span class="x2mdx-ref-type-badge">完成</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">偏移量\_checkpoint</code>
<span class="x2mdx-ref-type-badge">OffsetCheckpoint</span>
</div>
</div>
</div>
</div>
## 生命周期变化
<div class="x2mdx-ref-change-list">
<div class="x2mdx-ref-change-item">
<span class="x2mdx-ref-change-version">3.4.4</span>
<span class="x2mdx-ref-change-detail">引入</span>
</div>
</div>
## 相关模式
<手风琴组>
<手风琴标题=“com.daml.ledger.api.v2.CompletionStreamRequest”>
<div class="x2mdx-ref-schema" id="schema-com-daml-ledger-api-v2-completionstreamrequest">
<div class="x2mdx-ref-fields">
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">用户\_id</code>
<span class="x2mdx-ref-type-badge">字符串</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">各方</code>
<span class="x2mdx-ref-type-badge">重复字符串</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">开始\_exclusive</code>
<span class="x2mdx-ref-type-badge">int64</span>
</div>
</div>
</div>
</div>
</手风琴><手风琴标题=“com.daml.ledger.api.v2.CompletionStreamResponse”>
<div class="x2mdx-ref-schema" id="schema-com-daml-ledger-api-v2-completionstreamresponse">
<div class="x2mdx-ref-fields">
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">完成</code>
<span class="x2mdx-ref-type-badge">完成</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">偏移量\_checkpoint</code>
<span class="x2mdx-ref-type-badge">OffsetCheckpoint</span>
</div>
</div>
</div>
</div>
</手风琴>
<手风琴标题=“com.daml.ledger.api.v2.Completion”>
<div class="x2mdx-ref-schema" id="schema-com-daml-ledger-api-v2-completion">
<div class="x2mdx-ref-fields">
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">命令\_id</code>
<span class="x2mdx-ref-type-badge">字符串</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">状态</code>
<span class="x2mdx-ref-type-badge">状态</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">更新\_id</code>
<span class="x2mdx-ref-type-badge">字符串</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">用户\_id</code>
<span class="x2mdx-ref-type-badge">字符串</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">act\_as</code>
<span class="x2mdx-ref-type-badge">重复字符串</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">提交\_id</code>
<span class="x2mdx-ref-type-badge">字符串</span>
</div>
</div><div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">重复数据删除\_offset</code>
<span class="x2mdx-ref-type-badge">int64</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">重复数据删除\_duration</code>
<span class="x2mdx-ref-type-badge">持续时间</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">trace\_context</code>
<span class="x2mdx-ref-type-badge">TraceContext</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">偏移量</code>
<span class="x2mdx-ref-type-badge">int64</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">同步器\_time</code>
<span class="x2mdx-ref-type-badge">同步器时间</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">付费\_traffic\_cost</code>
<span class="x2mdx-ref-type-badge">int64</span>
</div>
</div>
</div>
</div>
</手风琴>
<手风琴标题=“com.daml.ledger.api.v2.TraceContext”>
<div class="x2mdx-ref-schema" id="schema-com-daml-ledger-api-v2-tracecontext">
<div class="x2mdx-ref-fields">
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">traceparent</code>
<span class="x2mdx-ref-type-badge">字符串</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">跟踪状态</code>
<span class="x2mdx-ref-type-badge">字符串</span>
</div>
</div>
</div>
</div>
</手风琴><手风琴标题=“com.daml.ledger.api.v2.同步器Time”>
<div class="x2mdx-ref-schema" id="schema-com-daml-ledger-api-v2-同步器time">
<div class="x2mdx-ref-fields">
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">同步器\_id</code>
<span class="x2mdx-ref-type-badge">字符串</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">记录\_时间</code>
<span class="x2mdx-ref-type-badge">时间戳</span>
</div>
</div>
</div>
</div>
</手风琴>
<手风琴标题=“com.daml.ledger.api.v2.OffsetCheckpoint”>
<div class="x2mdx-ref-schema" id="schema-com-daml-ledger-api-v2-offsetcheckpoint">
<div class="x2mdx-ref-fields">
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">偏移量</code>
<span class="x2mdx-ref-type-badge">int64</span>
</div>
</div>
<div class="x2mdx-ref-field-row">
<div class="x2mdx-ref-field-main">
<code class="x2mdx-ref-field-name">同步器\_times</code>
<span class="x2mdx-ref-type-badge">重复同步器时间</span>
</div>
</div>
</div>
</div>
</手风琴>
</手风琴组>
grpcurl
```bash grpcurl theme={"theme":{"light":"github-light","dark":"github-dark"}}
# Add -plaintext if the server is not using TLS.
# This RPC uses streaming semantics. Send additional JSON messages on stdin as needed.
grpcurl \
-d @ \
<HOST:PORT> \
com.daml.ledger.api.v2.CommandCompletionService/CompletionStream <<'EOF'
{
"userId": "string",
"parties": [
"string"
],
"beginExclusive": "0"
}
EOF
```
</div>
</div>
<div className="x2mdx-ref-rail-panel">
<div className="x2mdx-ref-rail-code x2mdx-ref-rail-code--response">
<div className="x2mdx-ref-rail-head">
<span className="x2mdx-ref-rail-heading">确定</span><span className="x2mdx-ref-response-label">application/json</span>
</div>
```json OK theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
"completion": {
"commandId": "string",
"status": "string",
"updateId": "string",
"userId": "string",
"actAs": [
"string"
],
"submissionId": "string",
"deduplicationOffset": "0"
}
}
```
</div>
</div>
本文由 CC Privacy Club 根据 Canton Network 官方文档(CC-BY-4.0)整理翻译,仅供学习;实现细节以官方最新版本为准。