Skip to content

Commit

Permalink
deploy: 7f63bbf
Browse files Browse the repository at this point in the history
  • Loading branch information
abailly-iohk committed Oct 26, 2021
1 parent 1acfd50 commit 38edaab
Show file tree
Hide file tree
Showing 43 changed files with 102 additions and 53 deletions.
28 changes: 28 additions & 0 deletions adr/0010-use-direct-chain.md
@@ -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
3 changes: 3 additions & 0 deletions adr/README.md
Expand Up @@ -11,3 +11,6 @@ Here is a list of currently accepted or discussed **Architecture Decision Record
7. _Components are defined using [with-pattern](./0007-with-pattern-component-interfaces.md)_
8. [Use custom Prelude](./0008-use-custom-prelude.md)
9. [Simplify logging](./0009-simplify-logging.md)
10. _[Direct on-chain connection](./0010-use-direct-chain.md)_
11. _[Use cardano-api](./0011-use-cardano-api.md)_
12. _[Top-down Test-Driven Design](./0012-testing-strategy.md)_
2 changes: 1 addition & 1 deletion haddock/hydra-node/Hydra-API-Server.html

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions haddock/hydra-node/Hydra-Chain-Direct-Tx.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion haddock/hydra-node/Hydra-Chain-Direct.html

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions haddock/hydra-node/Hydra-Chain-ExternalPAB.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions haddock/hydra-node/Hydra-Chain.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion haddock/hydra-node/Hydra-Logging-Messages.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion haddock/hydra-node/Hydra-Logging.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion haddock/hydra-node/Hydra-Node-Version.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion haddock/hydra-node/doc-index-36.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion haddock/hydra-node/doc-index-A.html
@@ -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>&nbsp;</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>
2 changes: 1 addition & 1 deletion haddock/hydra-node/doc-index-All.html

Large diffs are not rendered by default.

0 comments on commit 38edaab

Please sign in to comment.