Re: [Blockchain-interop] Terminology and Gateway Session IDs

Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt> Mon, 01 November 2021 21:12 UTC

Return-Path: <rafael.belchior@tecnico.ulisboa.pt>
X-Original-To: blockchain-interop@ietfa.amsl.com
Delivered-To: blockchain-interop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6FC883A2FAC for <blockchain-interop@ietfa.amsl.com>; Mon, 1 Nov 2021 14:12:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=tecnico.ulisboa.pt
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Z6d2G58VJQqz for <blockchain-interop@ietfa.amsl.com>; Mon, 1 Nov 2021 14:12:07 -0700 (PDT)
Received: from smtp1.tecnico.ulisboa.pt (smtp1.tecnico.ulisboa.pt [IPv6:2001:690:2100:1::15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6203A3A2FA7 for <blockchain-interop@ietf.org>; Mon, 1 Nov 2021 14:12:06 -0700 (PDT)
Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp1.tecnico.ulisboa.pt (Postfix) with ESMTP id EF7536000861; Mon, 1 Nov 2021 21:12:01 +0000 (WET)
X-Virus-Scanned: by amavisd-new-2.11.0 (20160426) (Debian) at tecnico.ulisboa.pt
Received: from smtp1.tecnico.ulisboa.pt ([127.0.0.1]) by localhost (smtp1.tecnico.ulisboa.pt [127.0.0.1]) (amavisd-new, port 10025) with LMTP id LeMYFd804ScK; Mon, 1 Nov 2021 21:11:58 +0000 (WET)
Received: from mail1.tecnico.ulisboa.pt (mail1.ist.utl.pt [IPv6:2001:690:2100:1::b3dd:b9ac]) by smtp1.tecnico.ulisboa.pt (Postfix) with ESMTPS id 2DF356005403; Mon, 1 Nov 2021 21:11:58 +0000 (WET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tecnico.ulisboa.pt; s=mail; t=1635801118; bh=FeTC36jubC2CQBABEM+7nEcpg7cUyxKLHu5MUCigsOk=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=g3VYO7U9zPudEdk2ofcDXroR6VTioDg9yWG2k2OgLMHAP0CsPDjeywkfoFvW0RoEG eA1Wz/BQQaRPfCTfDn/raB3e6jGbDefuVw1rvglTnFot2YS6HLCGL/HgsAtGASKiYX VJnoZv4T+cqq2pXXq1kixF5fh5Y+dgKAVo+kRV3Q=
Received: from webmail.tecnico.ulisboa.pt (webmail4.tecnico.ulisboa.pt [IPv6:2001:690:2100:1::8a3:363d]) (Authenticated sender: ist180970) by mail1.tecnico.ulisboa.pt (Postfix) with ESMTPSA id 965B1360079; Mon, 1 Nov 2021 21:11:57 +0000 (WET)
Received: from 2001:8a0:7459:5900:a08f:cffe:b7ff:bfc6 via vs1.ist.utl.pt ([2001:690:2100:1::33]) by webmail.tecnico.ulisboa.pt with HTTP (HTTP/1.1 POST); Mon, 01 Nov 2021 21:11:57 +0000
MIME-Version: 1.0
Date: Mon, 01 Nov 2021 21:11:57 +0000
From: Rafael Belchior <rafael.belchior@tecnico.ulisboa.pt>
To: Thomas Hardjono <hardjono@mit.edu>
Cc: blockchain-interop@ietf.org, Denis Avrilionis <denis@compell.io>, luke.riley@quant.network
In-Reply-To: <1f53592c1bf841edb2ce8524189ae7de@oc11expo23.exchange.mit.edu>
References: <1f53592c1bf841edb2ce8524189ae7de@oc11expo23.exchange.mit.edu>
Message-ID: <0181a015341e32f0a32a03b1f7d4bfc6@tecnico.ulisboa.pt>
X-Sender: rafael.belchior@tecnico.ulisboa.pt
User-Agent: Roundcube Webmail/1.3.15
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/blockchain-interop/gx38tN2IJF7mltjV72q9EKZAGnM>
Subject: Re: [Blockchain-interop] Terminology and Gateway Session IDs
X-BeenThere: blockchain-interop@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Blockchain Gateway Interoperability Protocol <blockchain-interop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/blockchain-interop>, <mailto:blockchain-interop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/blockchain-interop/>
List-Post: <mailto:blockchain-interop@ietf.org>
List-Help: <mailto:blockchain-interop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/blockchain-interop>, <mailto:blockchain-interop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Nov 2021 21:12:13 -0000

Hello All,

I'll answer inline:

A 2021-10-27 15:10, Thomas Hardjono escreveu:
> I thoughts yesterday’s discussion was very illuminating (thanks Luke
> and Denis).
> 
> It highlights the fact that we are bringing together concepts and
> terminologies from three different disciplines: (i) software
> applications/cloud engineering; (ii) database transactional processing
> (e.g. 2PC and 3PC, etc.); and (iii) DLT and blockchains (e.g.
> consensus/BFT, finalization, views, etc.).
> 
> Here is the link to Denis’ slides on the Github Repo:
> 
> https://bit.ly/3CmxiR1
> 
> 
> For our terminology, I was thinking of qualifying the use of the word
> “transaction” going forward and use the following:
> 
> -- Gateway-to-gateway transfer transaction (or simply:  gateway 
> transaction).
> 
> -- DLT transaction
> 
> -- Application-to-Application Interaction (or simply:  application 
> interaction)
> 
> 
> For the session IDs, can we assume there are four (4) different 
> “sessions” used:
> 
> (a) Between gateway GW1 and gateway GW2  (who chooses the Session ID).

Gateway session, then?

> 
> (b) Between APP1 and GW1 (local session)
> 
> (c) Between APP2 and GW2 (local session)
> 
> (d) Between APP1 and APP1 (app-layer session)
> 
> 
> I have a couple of questions about the Gateway SessionIDs:
> 
> (i) In the gateway transaction, which gateway selects the Gateway
> SessionID? (is it GW1?).

I believe the initiator gateway, which will be the coordinator, should 
choose a session ID. However, this choice should follow a process, 
namely:
1) We need to guarantee each session ID is unique
2) We need to guarantee that the log of each session ID has a 1-1 
mapping to the session (i.e., each log refers to the current session).

For this, the counterparty gateway could check that such session ID is 
unique (using decentralized log storage facilitates this task).

Perhaps sessions could refer previous, related sessions (e.g., a session 
that will roll back the state of an asset-based on a triggered rollback 
of a previous session)?


> 
> (ii) Can we assume that GW1 will communicate this SessionID up to its
> APP1, which will then communicate it to APP2 (and then down to GW2)

Since APPs are not trusted (in principle), perhaps the safer interaction 
would be GW1-GW2, and each gateway has the responsibility of updating 
its APPs.

> 
> (iii) Can we assume that APP1 and APP2 will “bind” the Gateway
> SessionID to their own app-layer session identifier? (nb. the
> mechanics is out of scope for us, but we still need to state
> assumptions).

What happens on the APP layer is not, in principle, the responsibility 
of gateways. What are the reasons why this binding would be necessary?


> (iv) Do Views use SessionIDs?  That is, when GW1 generates a View Data
> (as the result of GW2 invoking the View Address from DLT1/N1), is
> there some "embedded" session numbering associated with the resulting
> Data?

It depends on the definition of view. In our perspective (see page 15 of 
https://arxiv.org/pdf/2011.14465.pdf), it makes sense to bind a view 
with a particular timeframe (i.e., a particular session).

Cheers,
> 
> 
> 
> Best
> 
> 
> --thomas

-- 
-- Rafael Belchior

Ph.D. student in Computer Science and Engineering, Blockchain - Técnico
Lisboa
https://rafaelapb.github.io/
https://www.linkedin.com/in/rafaelpbelchior/