Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
1acfd50
commit 38edaab
Showing
43 changed files
with
102 additions
and
53 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# 10. Use direct connection to cardano-node | ||
|
||
Date: 2021-10-23 | ||
|
||
## Status | ||
|
||
:hammer_and_wrench: | ||
|
||
## Context | ||
|
||
* On-Chain Validation is a critical part of the Hydra protocol, it requires both the ability to _submit_ transactions to the _Layer 1_ chain advancing the state of a Head, and _observing_ those transactions as the [Plutus](https://github.com/input-output-hk/plutus) contracts are validated | ||
* The [Plutus Application Framework](https://github.com/input-output-hk/plutus-apps) is expected to provide the necessary machinery to allow "Smart Contracts" applications to interact with the chain but it's still under active development and not ready for deployment on-chain | ||
* We want to gather feedback as early as possible and deliver a fully functional Hydra Head node for early adopters to test on a "real" chain (testnet) | ||
* Our experiment connecting directly to a Cardano node has been conclusive. We can: | ||
* Connect to a node using local protocols, | ||
* Build and submit Head transactions triggering smart contracts validation, and | ||
* Observe transactions using chain-sync protocol. | ||
|
||
## Decision | ||
|
||
_Therefore_ | ||
|
||
For the time being, until _Plutus Application Framework_ is released, we will implement on-chain interaction of Hydra nodes _directly_, connecting to a Cardano node through a _local socket_. | ||
|
||
## Consequences | ||
|
||
* Limit Hydra dependencies to [plutus](https://github.com/input-output-hk/plutus) repository | ||
* Remove all PAB-related code as well as off-chain `Contract`s code and related dependencies |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>hydra-node-0.1.0: The Hydra node (Index - A)</title><link href="linuwial.css" rel="stylesheet" type="text/css" title="Linuwial" /><link rel="stylesheet" type="text/css" href="quick-jump.css" /><link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=PT+Sans:400,400i,700" /><script src="haddock-bundle.min.js" async="async" type="text/javascript"></script><script type="text/x-mathjax-config">MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script></head><body><div id="package-header"><span class="caption">hydra-node-0.1.0: The Hydra node</span><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - A</p><table><tr><td class="src">Abort</td><td class="module"><a href="Hydra-ClientInput.html#v:Abort" title="Hydra.ClientInput">Hydra.ClientInput</a></td></tr><tr><td class="src">AbortTx</td><td class="module"><a href="Hydra-Chain.html#v:AbortTx" title="Hydra.Chain">Hydra.Chain</a></td></tr><tr><td class="src">abortTx</td><td class="module"><a href="Hydra-Chain-Direct-Tx.html#v:abortTx" title="Hydra.Chain.Direct.Tx">Hydra.Chain.Direct.Tx</a></td></tr><tr><td class="src">AckSn</td><td class="module"><a href="Hydra-Network-Message.html#v:AckSn" title="Hydra.Network.Message">Hydra.Network.Message</a></td></tr><tr><td class="src">Address</td><td class="module"><a href="Hydra-Chain-Direct-Wallet.html#t:Address" title="Hydra.Chain.Direct.Wallet">Hydra.Chain.Direct.Wallet</a></td></tr><tr><td class="src">alias</td><td class="module"><a href="Hydra-Party.html#v:alias" title="Hydra.Party">Hydra.Party</a></td></tr><tr><td class="src">alive</td><td class="module"><a href="Hydra-Network-Heartbeat.html#v:alive" title="Hydra.Network.Heartbeat">Hydra.Network.Heartbeat</a></td></tr><tr><td class="src">AlonzoPoint</td><td class="module"><a href="Hydra-Chain-Direct-Wallet.html#t:AlonzoPoint" title="Hydra.Chain.Direct.Wallet">Hydra.Chain.Direct.Wallet</a></td></tr><tr><td class="src">anonymousParty</td><td class="module"><a href="Hydra-Party.html#v:anonymousParty" title="Hydra.Party">Hydra.Party</a></td></tr><tr><td class="src">api</td><td class="module"><a href="Hydra-Logging-Messages.html#v:api" title="Hydra.Logging.Messages">Hydra.Logging.Messages</a></td></tr><tr><td class="src">apiHost</td><td class="module"><a href="Hydra-Options.html#v:apiHost" title="Hydra.Options">Hydra.Options</a></td></tr><tr><td class="src">apiPort</td><td class="module"><a href="Hydra-Options.html#v:apiPort" title="Hydra.Options">Hydra.Options</a></td></tr><tr><td class="src">APIServer</td><td class="module"><a href="Hydra-Logging-Messages.html#v:APIServer" title="Hydra.Logging.Messages">Hydra.Logging.Messages</a></td></tr><tr><td class="src">APIServerLog</td><td class="module"><a href="Hydra-API-Server.html#t:APIServerLog" title="Hydra.API.Server">Hydra.API.Server</a></td></tr><tr><td class="src">ApplyBlock</td><td class="module"><a href="Hydra-Chain-Direct-Wallet.html#v:ApplyBlock" title="Hydra.Chain.Direct.Wallet">Hydra.Chain.Direct.Wallet</a></td></tr><tr><td class="src">applyBlock</td><td class="module"><a href="Hydra-Chain-Direct-Wallet.html#v:applyBlock" title="Hydra.Chain.Direct.Wallet">Hydra.Chain.Direct.Wallet</a></td></tr><tr><td class="src">applyTransactions</td><td class="module"><a href="Hydra-Ledger.html#v:applyTransactions" title="Hydra.Ledger">Hydra.Ledger</a></td></tr><tr><td class="src">applyTx</td><td class="module"><a href="Hydra-Ledger-Cardano.html#v:applyTx" title="Hydra.Ledger.Cardano">Hydra.Ledger.Cardano</a></td></tr><tr><td class="src">AssetId</td><td class="module"><a href="Hydra-Ledger.html#t:AssetId" title="Hydra.Ledger">Hydra.Ledger</a></td></tr><tr><td class="src">assets</td><td class="module"><a href="Hydra-Ledger.html#v:assets" title="Hydra.Ledger">Hydra.Ledger</a></td></tr><tr><td class="src">auxiliaryData</td><td class="module"><a href="Hydra-Ledger-Cardano.html#v:auxiliaryData" title="Hydra.Ledger.Cardano">Hydra.Ledger.Cardano</a></td></tr><tr><td class="src">aValidTx</td><td class="module"><a href="Hydra-Ledger-Simple.html#v:aValidTx" title="Hydra.Ledger.Simple">Hydra.Ledger.Simple</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.24.2</p></div></body></html> | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>hydra-node-0.1.0: The Hydra node (Index - A)</title><link href="linuwial.css" rel="stylesheet" type="text/css" title="Linuwial" /><link rel="stylesheet" type="text/css" href="quick-jump.css" /><link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=PT+Sans:400,400i,700" /><script src="haddock-bundle.min.js" async="async" type="text/javascript"></script><script type="text/x-mathjax-config">MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script></head><body><div id="package-header"><span class="caption">hydra-node-0.1.0: The Hydra node</span><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul></div><div id="content"><div id="alphabet"><ul><li><a href="doc-index-A.html">A</a></li><li><a href="doc-index-B.html">B</a></li><li><a href="doc-index-C.html">C</a></li><li><a href="doc-index-D.html">D</a></li><li><a href="doc-index-E.html">E</a></li><li><a href="doc-index-F.html">F</a></li><li><a href="doc-index-G.html">G</a></li><li><a href="doc-index-H.html">H</a></li><li><a href="doc-index-I.html">I</a></li><li><a href="doc-index-K.html">K</a></li><li><a href="doc-index-L.html">L</a></li><li><a href="doc-index-M.html">M</a></li><li><a href="doc-index-N.html">N</a></li><li><a href="doc-index-O.html">O</a></li><li><a href="doc-index-P.html">P</a></li><li><a href="doc-index-Q.html">Q</a></li><li><a href="doc-index-R.html">R</a></li><li><a href="doc-index-S.html">S</a></li><li><a href="doc-index-T.html">T</a></li><li><a href="doc-index-U.html">U</a></li><li><a href="doc-index-V.html">V</a></li><li><a href="doc-index-W.html">W</a></li><li><a href="doc-index-36.html">$</a></li><li><a href="doc-index-All.html">All</a></li></ul></div><div id="index"><p class="caption">Index - A</p><table><tr><td class="src">Abort</td><td class="module"><a href="Hydra-ClientInput.html#v:Abort" title="Hydra.ClientInput">Hydra.ClientInput</a></td></tr><tr><td class="src">AbortTx</td><td class="module"><a href="Hydra-Chain.html#v:AbortTx" title="Hydra.Chain">Hydra.Chain</a></td></tr><tr><td class="src">abortTx</td><td class="module"><a href="Hydra-Chain-Direct-Tx.html#v:abortTx" title="Hydra.Chain.Direct.Tx">Hydra.Chain.Direct.Tx</a></td></tr><tr><td class="src">AckSn</td><td class="module"><a href="Hydra-Network-Message.html#v:AckSn" title="Hydra.Network.Message">Hydra.Network.Message</a></td></tr><tr><td class="src">activateContract</td><td class="module"><a href="Hydra-Chain-ExternalPAB.html#v:activateContract" title="Hydra.Chain.ExternalPAB">Hydra.Chain.ExternalPAB</a></td></tr><tr><td class="src">ActivateContractRequest</td><td> </td></tr><tr><td class="alt">1 (Type/Class)</td><td class="module"><a href="Hydra-Chain-ExternalPAB.html#t:ActivateContractRequest" title="Hydra.Chain.ExternalPAB">Hydra.Chain.ExternalPAB</a></td></tr><tr><td class="alt">2 (Data Constructor)</td><td class="module"><a href="Hydra-Chain-ExternalPAB.html#v:ActivateContractRequest" title="Hydra.Chain.ExternalPAB">Hydra.Chain.ExternalPAB</a></td></tr><tr><td class="src">Address</td><td class="module"><a href="Hydra-Chain-Direct-Wallet.html#t:Address" title="Hydra.Chain.Direct.Wallet">Hydra.Chain.Direct.Wallet</a></td></tr><tr><td class="src">alias</td><td class="module"><a href="Hydra-Party.html#v:alias" title="Hydra.Party">Hydra.Party</a></td></tr><tr><td class="src">alive</td><td class="module"><a href="Hydra-Network-Heartbeat.html#v:alive" title="Hydra.Network.Heartbeat">Hydra.Network.Heartbeat</a></td></tr><tr><td class="src">AlonzoPoint</td><td class="module"><a href="Hydra-Chain-Direct-Wallet.html#t:AlonzoPoint" title="Hydra.Chain.Direct.Wallet">Hydra.Chain.Direct.Wallet</a></td></tr><tr><td class="src">anonymousParty</td><td class="module"><a href="Hydra-Party.html#v:anonymousParty" title="Hydra.Party">Hydra.Party</a></td></tr><tr><td class="src">api</td><td class="module"><a href="Hydra-Logging-Messages.html#v:api" title="Hydra.Logging.Messages">Hydra.Logging.Messages</a></td></tr><tr><td class="src">apiHost</td><td class="module"><a href="Hydra-Options.html#v:apiHost" title="Hydra.Options">Hydra.Options</a></td></tr><tr><td class="src">apiPort</td><td class="module"><a href="Hydra-Options.html#v:apiPort" title="Hydra.Options">Hydra.Options</a></td></tr><tr><td class="src">APIServer</td><td class="module"><a href="Hydra-Logging-Messages.html#v:APIServer" title="Hydra.Logging.Messages">Hydra.Logging.Messages</a></td></tr><tr><td class="src">APIServerLog</td><td class="module"><a href="Hydra-API-Server.html#t:APIServerLog" title="Hydra.API.Server">Hydra.API.Server</a></td></tr><tr><td class="src">ApplyBlock</td><td class="module"><a href="Hydra-Chain-Direct-Wallet.html#v:ApplyBlock" title="Hydra.Chain.Direct.Wallet">Hydra.Chain.Direct.Wallet</a></td></tr><tr><td class="src">applyBlock</td><td class="module"><a href="Hydra-Chain-Direct-Wallet.html#v:applyBlock" title="Hydra.Chain.Direct.Wallet">Hydra.Chain.Direct.Wallet</a></td></tr><tr><td class="src">applyTransactions</td><td class="module"><a href="Hydra-Ledger.html#v:applyTransactions" title="Hydra.Ledger">Hydra.Ledger</a></td></tr><tr><td class="src">applyTx</td><td class="module"><a href="Hydra-Ledger-Cardano.html#v:applyTx" title="Hydra.Ledger.Cardano">Hydra.Ledger.Cardano</a></td></tr><tr><td class="src">AssetId</td><td class="module"><a href="Hydra-Ledger.html#t:AssetId" title="Hydra.Ledger">Hydra.Ledger</a></td></tr><tr><td class="src">assets</td><td class="module"><a href="Hydra-Ledger.html#v:assets" title="Hydra.Ledger">Hydra.Ledger</a></td></tr><tr><td class="src">auxiliaryData</td><td class="module"><a href="Hydra-Ledger-Cardano.html#v:auxiliaryData" title="Hydra.Ledger.Cardano">Hydra.Ledger.Cardano</a></td></tr><tr><td class="src">aValidTx</td><td class="module"><a href="Hydra-Ledger-Simple.html#v:aValidTx" title="Hydra.Ledger.Simple">Hydra.Ledger.Simple</a></td></tr></table></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.24.2</p></div></body></html> |
Large diffs are not rendered by default.
Oops, something went wrong.
Oops, something went wrong.