メンバーへのアクセス

あの TRISAMembers このサービスは実験的なものであり、検証済みのトリッサメンバーにディレクトリサービスへの追加の安全なアクセスを提供します。ネットワークのメンバーのみが、このサービスを使用してネットワークに関する詳細なディレクトリサービスデータにアクセスできます。 注:検証されると、このサービスは公式のトリッサ仕様に移行されます。.

あの TRISAMembers サービス

このセクションでは、protocol buffers のためにTRISAMembers 見つけることができるエンドポイント。ここ. このファイルは、選択した言語にコンパイルできます。 (ゴランの例). ノート: ダウンロードしてインストールする必要があります protocol buffer まだ行っていない場合はコンパイラ.

現在、TRISAMembers サービスは単一のRPCのみで構成されます— あの List RPC. その他の実験的で安全RPCs 将来的に利用可能になる可能性があります。.

service TRISAMembers {
    // List all verified VASP members in the Directory Service.
    rpc List(ListRequest) returns (ListReply) {};
}

確認済みメンバーのリスト

あの List RPC トリッサピアルックアップを容易にするために、検証されたすべてのトリッサメンバーのページ付けされたリストを返します。あの RPC 入力として期待しますListRequest とを返します ListReply.

ListRequest

ListRequest 仮想資産サービスプロバイダーリスト要求のページ付けを管理するために使用できます。 指定されたページサイズよりも多くの結果がある場合ListReply次のページをフェッチするために使用できるページトークンを返します。 page_sizeページごとの結果の数を指定し、ページ要求間で変更することはできません。 デフォルト値は100です。 あの page_token` 結果の次のページをフェッチするためのページトークンを指定します。

message ListRequest {
    int32 page_size = 1;
    string page_token = 2;
}

ListReply

ListReply ピアツーピアキー交換またはディレクトリサービスに対するより詳細なルックアップを容易にすることを目的とした仮想アセットサービスプロバイダーの詳細の簡略リストを返します。

vasps 仮想資産サービスプロバイダーのリストです(の定義を参照してください)VASPMember 以下、およびnext_page_token, 指定されている場合、結果の別のページが存在することの通知です

message ListReply {
    repeated VASPMember vasps = 1;
    string next_page_token = 2;
}

VASPMember

VASPMember ディレクトリサービスに対するピアツーピア交換またはより詳細なルックアップを容易にするのに十分な情報が含まれています。 あのListReply なし、1つ、または複数のリストが含まれます。VASPMembers.

message VASPMember {
    // ディレクトリサービス内の仮想アセットサービスプロバイダーの一意に識別するコンポーネント
    string id = 1;
    string registered_directory = 2;
    string common_name = 3;

    // トリッサ要求を実行するためにリモート仮想資産サービスプロバイダーに接続するためのアドレス。
    string endpoint = 4;

    // 検索と照合を容易にするために使用される追加の詳細。
    string name = 5;
    string website = 6;
    string country = 7;
    trisa.gds.models.v1beta1.BusinessCategory business_category = 8;
    repeated string vasp_categories = 9;
    string verified_on = 10;
}

mTLSで接続する

を使用するにはTRISAMembers サービス、あなたはで認証する必要がありますmTLS 登録時に付与されたトリッサ識別証明書を使用します。 認証に関するgRPCドキュメント を含むさまざまな言語でmTLSを使用して接続するためのコードサンプルを提供しますJava, C++, Golang, Ruby, と Python.

たとえば、ディレクトリサービスへの接続にを使用している場合は、tls, x509, とcredentials ライブラリを使用して、コンピュータ上の安全な場所からトリッサID証明書をロードし、サーバーとの接続を相互に検証するためのTLSクレデンシャルを構築します。 最後に、コンパイルされたメンバーを使用します protocol buffer メンバークライアントを作成するコード。 *注:protocol buffer 定義については、このページの前半で詳しく説明しています。

import (
    "crypto/tls"
    "crypto/x509"

    members "github.com/trisacrypto/directory/pkg/gds/members/v1alpha1"
    "google.golang.org/grpc/credentials"
)

func (m *MyProfile) Connect() (_ members.TRISAMembersClient, err error){
    config := &tls.Config{
		Certificates: []tls.Certificate{m.Cert}, // m.Cert is your TRISA certificate parsed into a *x509.Certificate
		MinVersion:   tls.VersionTLS12,
		CurvePreferences: []tls.CurveID{
			tls.CurveP521,
			tls.CurveP384,
			tls.CurveP256,
		},
		PreferServerCipherSuites: true,
		CipherSuites: []uint16{
			tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
			tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
			tls.TLS_RSA_WITH_AES_256_GCM_SHA384,
			tls.TLS_RSA_WITH_AES_128_GCM_SHA256,
		},
		ClientAuth: tls.RequireAndVerifyClientCert, // this will ensure an mTLS connection
		ClientCAs:  m.Pool, // m.Pool is a *x509.CertPool that must contain the RA and IA public certs from your TRISA certificate chain
	}

    var creds *credentials.TransportCredentials
    if creds, err = credentials.NewTLS(config); err != nil {
        return nil, err
    }

    var cc *grpc.ClientConn
    if cc, err = grpc.Dial(m.Endpoint, grpc.WithTransportCredentials(creds)); err != nil {
        return nil, err
    }

    return members.NewTRISAMembersClient(cc), nil
}

現在、2つのtrisaディレクトリがあることに注意してください。TRISA TestNet, これにより、ユーザーはトリッサの相互作用と仮想アプリケーションサービスプロバイダーディレクトリを試すことができます。VASP Directory, これは、トリッサ取引の生産ネットワークです。 テストネットに登録し、証明書を持っている場合、ダイヤル機能に渡すエンドポイントは次のようになります。members.trisatest.net:443. または、仮想アプリケーションサービスプロバイダーディレクトリのメンバーにアクセスする場合で、すでに登録済みのメンバーである場合は、エンドポイントを使用します。members.vaspdirectory.net:443.