Skip to content

Commit

Permalink
Update Docs and Envoy Stub (trisacrypto#157)
Browse files Browse the repository at this point in the history
  • Loading branch information
bbengfort authored Apr 17, 2024
1 parent 587749b commit 423c0fe
Show file tree
Hide file tree
Showing 54 changed files with 333 additions and 1,031 deletions.
7 changes: 4 additions & 3 deletions .github/workflows/publish-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: true # Fetch Hugo themes
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod

- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
uses: peaceiris/actions-hugo@v3
with:
hugo-version: '0.110.0'
hugo-version: '0.125.0'
extended: true

- name: Build
run: hugo --gc --minify -s docs/ --templateMetrics --templateMetricsHints --verbose --verboseLog --buildDrafts --buildExpired --buildFuture --forceSyncStatic
Expand Down
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "docs/themes/hugo-theme-relearn"]
path = docs/themes/hugo-theme-relearn
url = https://github.com/rotationalio/hugo-theme-relearn.git
url = https://github.com/McShelby/hugo-theme-relearn
5 changes: 2 additions & 3 deletions docs/content/_index.de.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
---
Title: Startseite
title: TRISA-Entwicklerdokumentation
date: 2020-12-24T07:58:37-05:00
lastmod: 2021-10-08T15:17:08-05:00
description: "TRISA-Entwicklerdokumentation"
weight: 0
---

# TRISA

[![Go Reference](https://pkg.go.dev/badge/github.com/trisacrypto/trisa/pkg.svg)](https://pkg.go.dev/github.com/trisacrypto/trisa/pkg)

[![Go Report Card](https://goreportcard.com/badge/github.com/trisacrypto/trisa)](https://goreportcard.com/report/github.com/trisacrypto/trisa)

Das Ziel der Travel Rule Information Sharing Architecture (TRISA) ist es, die Einhaltung der FATF- und FinCEN-Reiseregeln für Kryptowährungs-Transaktionsidentitätsinformationen zu ermöglichen, ohne die Kernprotokolle der Blockchain zu verändern und ohne erhöhte Transaktionskosten zu verursachen oder die Peer-to-Peer-Transaktionsflüsse virtueller Währungen zu verändern. Das TRISA-Protokoll und die Spezifikation werden von der [TRISA Working Group](https://trisa.io) definiert; um mehr über die Spezifikation zu erfahren, [lesen Sie bitte die aktuelle Version des TRISA-Whitepapers](https://trisa.io/trisa-whitepaper/).
Expand Down
9 changes: 6 additions & 3 deletions docs/content/_index.en.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
---
title: Home
title: TRISA Developer Documentation
date: 2020-12-24T07:58:37-05:00
lastmod: 2022-08-10T13:22:20-04:00
description: "TRISA Developer Documentation"
weight: 0
---

# TRISA

[![Go Reference](https://pkg.go.dev/badge/github.com/trisacrypto/trisa/pkg.svg)](https://pkg.go.dev/github.com/trisacrypto/trisa/pkg)

[![Go Report Card](https://goreportcard.com/badge/github.com/trisacrypto/trisa)](https://goreportcard.com/report/github.com/trisacrypto/trisa)

{{< rawhtml >}}
Expand All @@ -17,6 +16,10 @@ weight: 0
</div>
{{< /rawhtml >}}

{{% notice style="primary" title="TRISA Envoy: An Open Source Node" icon="meteor" %}}
TRISA has released an open source node called "Envoy" that may help your organization quickly get up and running with both the TRISA and TRP protocols. If you're interested, [schedule a demo today](https://rtnl.link/p2WzzmXDuSu)!
{{% /notice %}}

The goal of the Travel Rule Information Sharing Architecture (TRISA) is to enable
compliance with the FATF and FinCEN Travel Rules for cryptocurrency transaction
identity information without modifying core blockchain protocols, and without
Expand Down
5 changes: 2 additions & 3 deletions docs/content/_index.fr.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
---
title: Accueil
title: Documentation du Développeur TRISA
date: 2020-12-24T07:58:37-05:00
lastmod: 2021-10-13T14:33:07-05:00
description: "Documentation pour les développeurs TRISA"
weight: 0
---

# TRISA

[![Go Reference](https://pkg.go.dev/badge/github.com/trisacrypto/trisa/pkg.svg)](https://pkg.go.dev/github.com/trisacrypto/trisa/pkg)

[![Go Report Card](https://goreportcard.com/badge/github.com/trisacrypto/trisa)](https://goreportcard.com/report/github.com/trisacrypto/trisa)

L'objectif de l'architecture de partage d'informations sur les règles de voyage (TRISA) est de permettre la mise en conformité avec les règles de voyage du GAFI et du FinCEN pour les informations d'identité des transactions en crypto-monnaies sans modifier les protocoles de base de la blockchain, et sans encourir de coûts de transaction accrus ni modifier les flux de transaction P2P en monnaie virtuelle. Le protocole et la spécification TRISA sont définis par le [groupe de travail TRISA](https://trisa.io) ; pour en savoir plus sur la spécification, [veuillez lire la version actuelle du livre blanc TRISA](https://trisa.io/trisa-whitepaper/).
Expand Down
6 changes: 3 additions & 3 deletions docs/content/_index.ja.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
---
title: ホームページ
title: TRISA 開発者向けドキュメント
date: 2020-12-24T07:58:37-05:00
lastmod: 2021-10-15T14:35:53-05:00
description: "TRISA デベロッパードキュメント"
weight: 0
---

## TRISA

[![Go Reference](https://pkg.go.dev/badge/github.com/trisacrypto/trisa/pkg.svg)](https://pkg.go.dev/github.com/trisacrypto/trisa/pkg)

[![Go Report Card](https://goreportcard.com/badge/github.com/trisacrypto/trisa)](https://goreportcard.com/report/github.com/trisacrypto/trisa)


トラベルルール情報共有アーキテクチャ(TRISA)の目標は、コアブロックチェーンプロトコルを変更したり、トランザクションコストを増加させたり、仮想通貨のピアツーピアトランザクションを変更したりすることなく、暗号通貨トランザクションID情報のFATFおよびFinCENトラベルルールへの準拠を可能にすることです流れ。TRISAプロトコルと仕様は、[TRISAワーキンググループ](https://trisa.io) によって定義されています。 仕様の詳細については、[現在のバージョンのTRISAホワイトペーパーをお読みください](https://trisa.io/trisa-whitepaper/)

このサイトには、[github.com/trisacrypto/trisa](https://github.com/trisacrypto/trisa) にあるTRISAプロトコルとリファレンス実装の開発者向けドキュメントが含まれています。 TRISAプロトコルは[gRPC API](https://grpc.io/) として定義されており、トラベルルールを実装する必要のある仮想資産サービスプロバイダー(VASP)間で、言語に依存しない高性能のピアツーピアサービスを促進しますコンプライアンスソリューション。 APIとメッセージ交換の形式はどちらも、[`protos`ディレクトリ](https://github.com/trisacrypto/trisa/tree/main/proto) にある[protocol buffers](https://developers.google.com/protocol-buffers) を介して定義されます。リポジトリの 。さらに、[Goプログラミング言語](https://golang.org/) のリファレンス実装が [`pkg`ディレクトリ](https://github.com/trisacrypto/trisa/tree/main/proto) で利用できるようになりました。 リポジトリの。将来的には、リポジトリの[`lib`ディレクトリ](https://github.com/trisacrypto/trisa/tree/main/lib) にある特定の言語のライブラリコードとして他の実装が利用できるようになる予定です。
Expand Down
5 changes: 2 additions & 3 deletions docs/content/_index.zh.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
---
title: 主页
title: TRISA 开发者文档
date: 2020-12-24T07:58:37-05:00
lastmod: 2021-10-13T15:10:04-05:00
description: "TRISA开发人员文档"
weight: 0
---

# TRISA

[![Go Reference](https://pkg.go.dev/badge/github.com/trisacrypto/trisa/pkg.svg)](https://pkg.go.dev/github.com/trisacrypto/trisa/pkg)

[![Go Report Card](https://goreportcard.com/badge/github.com/trisacrypto/trisa)](https://goreportcard.com/report/github.com/trisacrypto/trisa)

Travel Rule Information Sharing Architecture (TRISA)的目标是在不修改核心区块链协议、不增加交易成本或修改虚拟货币点对点交易流的情况下,使加密货币交易身份信息符合FATF和FinCEN数据转移规则。TRISA协议和规范由[TRISA工作组](https://trisa.io)定义;欲了解更多有关规范的信息,[请阅读TRISA白皮书的当前版本](https://trisa.io/trisa-whitepaper/)
Expand Down
4 changes: 2 additions & 2 deletions docs/content/api/_index.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: TRISA Protocol and API
date: 2022-07-06T15:08:52-04:00
lastmod: 2022-07-06T15:08:52-04:00
description: "Navigating the Open Source TRISA Code"
weight: 10
weight: 15
---

This section of the documentation describes the TRISA Protocol and API.
Expand All @@ -25,7 +25,7 @@ The `pkg` folder contains the reference implementation code, including compiled

[^1]: Note that these compiled files are compiled for Golang; but this is certainly not the only option. Those interested in building implementation code in a different language should look to the `lib` folder, which currently contains placeholder folders but is intended to showcase such other implementations (including compiled protocol buffer code for these other languages).

Another integral part of the TRISA protocol is the [Global Directory Service]({{< ref "/gds" >}}), which serves as a look-up tool for TRISA members to identify peers with which they wish to exchange information. For RPC definitions and implementation code related to the Global Directory Service, visit the companion [directory repository](https://github.com/trisacrypto/directory).
Another integral part of the TRISA protocol is the [Global Directory Service]({{% ref "/gds" %}}), which serves as a look-up tool for TRISA members to identify peers with which they wish to exchange information. For RPC definitions and implementation code related to the Global Directory Service, visit the companion [directory repository](https://github.com/trisacrypto/directory).



6 changes: 3 additions & 3 deletions docs/content/api/api.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ The `Transfer` RPC is a unary RPC for simple, single transactions. The `Transfer

### `SecureEnvelope`

A `SecureEnvelope` is the encrypted transaction envelope that is the outer layer of the TRISA information exchange protocol and facilitates the secure storage of Know Your Client (KYC) data in a transaction. The envelope specifies a unique id to reference the transaction out-of-band (e.g., in the blockchain layer). It provides the necessary information so only the originator and the beneficiary can decrypt the transaction data. For more information about Secure Envelopes, [this section]({{< relref "data/envelopes" >}}) of the documentation further describes this primary data structure for the TRISA exchange.
A `SecureEnvelope` is the encrypted transaction envelope that is the outer layer of the TRISA information exchange protocol and facilitates the secure storage of Know Your Client (KYC) data in a transaction. The envelope specifies a unique id to reference the transaction out-of-band (e.g., in the blockchain layer). It provides the necessary information so only the originator and the beneficiary can decrypt the transaction data. For more information about Secure Envelopes, [this section]({{% relref "data/envelopes" %}}) of the documentation further describes this primary data structure for the TRISA exchange.

A `SecureEnvelope` message contains different types of metadata. [The Anatomy of Secure Envelope]({{< relref "data/envelopes#the-anatomy-of-a-secure-envelope" >}}) section of this documentation further describes the envelope metadata, cryptographic metadata, and an encrypted payload and HMAC signature within the `SecureEnvelope`.
A `SecureEnvelope` message contains different types of metadata. [The Anatomy of Secure Envelope]({{% relref "data/envelopes#the-anatomy-of-a-secure-envelope" %}}) section of this documentation further describes the envelope metadata, cryptographic metadata, and an encrypted payload and HMAC signature within the `SecureEnvelope`.

```proto
message SecureEnvelope {
Expand Down Expand Up @@ -140,7 +140,7 @@ message ServiceState {

The implementation of the TRISA Protocol Buffers in Go is compiled using [`protoc`](https://grpc.io/docs/protoc-installation/) when `go generate ./...` is executed in the root of the repository. The [compiled files](https://github.com/trisacrypto/trisa/tree/main/pkg/trisa/api/v1beta1) in the TRISA repository contain the TRISA Network Protocol implemented in Go.

The `TRISANetworkServer` is the server API for `TRISANetwork`, while the `TRISANetworkClient` is the client API for the `TRISANetwork` service. Both contain the `Transfer`, `TransferStream`, `ConfirmAddress`, and `KeyExchange` methods described above as [RPCs]({{< relref "api/api#the-trisanetwork-service" >}}) under the `TRISANetwork` service.
The `TRISANetworkServer` is the server API for `TRISANetwork`, while the `TRISANetworkClient` is the client API for the `TRISANetwork` service. Both contain the `Transfer`, `TransferStream`, `ConfirmAddress`, and `KeyExchange` methods described above as [RPCs]({{% relref "api/api#the-trisanetwork-service" %}}) under the `TRISANetwork` service.

```golang
type TRISANetworkClient interface {
Expand Down
2 changes: 1 addition & 1 deletion docs/content/api/protocol.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ For example, some VASPs have optimized blockchain transactions to group 50-200 p

When a Beneficiary VASP receives Travel Rule transfer information from the Originating VASP through the TRISA protocol it may not always be able to respond immediately with any needed corrections or fill in for the missing/incorrect Beneficiary information provided. Thus the Beneficiary VASP should be able to respond back, at a later time, with the correct beneficiary information or provide errors if appropriate e.g., the beneficiary address is not owned by the Beneficiary VASP.

The Beneficiary VASP will return a [control flow response]({{< relref "data/payloads#a-pending-message" >}}) to the transfer message to notify the Originating VASP that they will handle the compliance transfer in an asynchronous manner. The reply is also composed as a secure message with digitally signed timestamps for auditing purposes. Inside of the transaction payload, the Beneficiary VASP will provide additional information about when the Originating VASP can expect a response. The Originating VASP should delay any further action or communication until either the expected time frame expires or they receive a follow-on response from the Beneficiary VASP.
The Beneficiary VASP will return a [control flow response]({{% relref "data/payloads#a-pending-message" %}}) to the transfer message to notify the Originating VASP that they will handle the compliance transfer in an asynchronous manner. The reply is also composed as a secure message with digitally signed timestamps for auditing purposes. Inside of the transaction payload, the Beneficiary VASP will provide additional information about when the Originating VASP can expect a response. The Originating VASP should delay any further action or communication until either the expected time frame expires or they receive a follow-on response from the Beneficiary VASP.

```proto
message Pending {
Expand Down
8 changes: 4 additions & 4 deletions docs/content/data/_index.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ weight: 20

This section of the documentation contains resources for developers who are working with TRISA data, such as:

- **IVMS101**: TRISA uses the IVMS101 standard to describe participants in cryptographic transactions. Learn more in our documentation about working with [IVMS101]({{< ref "/data/ivms" >}}).
- **IVMS101**: TRISA uses the IVMS101 standard to describe participants in cryptographic transactions. Learn more in our documentation about working with [IVMS101]({{% ref "/data/ivms" %}}).

- **SecureEnvelopes**: The primary data structure for a TRISA exchange is the `SecureEnvelope`, a wrapper for compliance payload data that facilitates peer-to-peer trust in compliance information exchanges. Learn more in our documentation about creating and parsing [Secure Envelopes]({{< ref "/data/envelopes" >}}).
- **SecureEnvelopes**: The primary data structure for a TRISA exchange is the `SecureEnvelope`, a wrapper for compliance payload data that facilitates peer-to-peer trust in compliance information exchanges. Learn more in our documentation about creating and parsing [Secure Envelopes]({{% ref "/data/envelopes" %}}).

- **Data Payloads**: A TRISA `Payload` contains information to be securely exchanged for Travel Rule compliance. The payload is serialized and encrypted to be sent in a `SecureEnvelope`. Learn more in our documentation about different types of [Payloads]({{< ref "/data/payloads" >}}) in TRISA.
- **Data Payloads**: A TRISA `Payload` contains information to be securely exchanged for Travel Rule compliance. The payload is serialized and encrypted to be sent in a `SecureEnvelope`. Learn more in our documentation about different types of [Payloads]({{% ref "/data/payloads" %}}) in TRISA.

- **Signing and Sealing Keys**: Your TRISA node will need to handle keys in a variety of formats, such as x.509 certificates on disk or marshaled data when sending keys in TRISA key exchanges. The Key Handler package provides helpful utilities for managing public/private key pairs used for sealing and unsealing `SecureEnvelopes`. Learn more in our documentation about the [Key Handler package]({{< ref "/data/keys" >}}).
- **Signing and Sealing Keys**: Your TRISA node will need to handle keys in a variety of formats, such as x.509 certificates on disk or marshaled data when sending keys in TRISA key exchanges. The Key Handler package provides helpful utilities for managing public/private key pairs used for sealing and unsealing `SecureEnvelopes`. Learn more in our documentation about the [Key Handler package]({{% ref "/data/keys" %}}).
2 changes: 1 addition & 1 deletion docs/content/data/envelopes.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ There are two basic workflows for secure envelopes: creating and sealing an enve
**Prerequisites**:

1. You should have constructed an appropriate TRISA `Payload` that contains an `identity` (an IVMS 101 `IdentityPayload`), a `transaction` (a TRISA generic transaction) and a `sent_at` timestamp (RFC-3339 formatted).
2. You should have the _public sealing key_ of the receipient. You can obtain this key either via the `KeyExchange` RPC or by requesting the key from the [directory service]({{< ref "/gds" >}}).
2. You should have the _public sealing key_ of the receipient. You can obtain this key either via the `KeyExchange` RPC or by requesting the key from the [directory service]({{% ref "/gds" %}}).

**Steps**:

Expand Down
2 changes: 1 addition & 1 deletion docs/content/data/payloads.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ message Payload {

The `identity` field in a TRISA `Payload` is a protobuf message intended to contain compliance identity information of the Originator and the Beneficiary. It is defined as an [`any`](https://developers.google.com/protocol-buffers/docs/proto3#any); this means that technically, it can be *any* message type. However, to encourage maximum compatibility between yourself and fellow TRISA members, we strongly recommend the use of [IVMS101](https://intervasp.org).

For help marshaling and unmarshaling [IVMS101 identity payloads]({{< relref "data/ivms" >}}), see the documentation about the [`ivms101` package in `trisa`](https://github.com/trisacrypto/trisa/tree/main/pkg/ivms101).
For help marshaling and unmarshaling [IVMS101 identity payloads]({{% relref "data/ivms" %}}), see the documentation about the [`ivms101` package in `trisa`](https://github.com/trisacrypto/trisa/tree/main/pkg/ivms101).

You can use the online [IVMS101 Validator](https://ivmsvalidator.com/) produced by [21 Analytics](https://www.21analytics.ch/) to ensure your message is properly structured IVMS101.

Expand Down
9 changes: 9 additions & 0 deletions docs/content/envoy/_index.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: TRISA Envoy
date: 2021-04-23T01:35:35-04:00
lastmod: 2022-08-10T13:22:02-04:00
description: "Using the TRISA Envoy self-hosted node"
weight: 7
---

Documentation coming soon!
Loading

0 comments on commit 423c0fe

Please sign in to comment.