What services go into the stack between a running Node (backend) and a User interface (frontend)?

Hi, wonder if someone can shed some light on the architecture / technology stack that will be available when Goguen goes live and we can start using Plutus on the mainnet. I appreciate that there is quite a bit that the dev team still needs to work through, but a bit of colour on what technologies one will be able to deploy and interact with a plutus smart contracts would be really helpful, so that we can have some idea of what can be prepped in advance

I am coming from angle of someone who is running a node and and also building the full stack app.

Example:

  • on the back end I have a node running that is processing transitions
    .
    .
  • on the front end I have a React JS app that is ready to interact via REST, graphql …

What will go in between those 2 extremes? At a very high level please

From what I gather I can launch a “cardano-wallet” and the “cardano-graphql” services in the background, expose them on a port on a relay node and have the front-end talk to them to them via HTTP to get wallet and other chain data

Question 1: will cardano-graphql expose the read methods of a plutus contracts, or will there be something else
Question 2: with what will the front end interact with the contracts. Is there another plutus service that will need to be deployed on the node

I think most helpful would be a about 10 to 20 bullet points of what goes in between the two edges of the stack and how they talk to each other.

Thanks

4 Likes

I believe this is a great question to ask on our next devnet checkin. Have you joined the dev community in slack?

I dialled into the last call hosted by Ben O’Hanlon a few days ago. Most of the discussion was focused on the Mary go live, but will raise it at the next call which I think is in couple of weeks.

Hi @dstratio, I was researching a similar question on how to build web applications on Cardano today, and I have some overlapping questions/answers. Here’s what I have:

Web application backend:

Web application frontend:

All of the above appears to be available today, so one can build multi-asset wallets and explorers.

One would not generally use cardano-wallet for getting wallet data from the chain, because it’s designed to help programs manage their own wallet funds (it requires the user submit to it their private key mnemonic), which is useful for Daedalus wallet, but not made for use as a generic javascript wallet management library.

Regarding how Plutus will fit into this picture, I would hope that cardano-graphql exposes smart contract information, but I have no privileged information here.

5 Likes

Great list of resources, very helpful.

So if I’m understanding correctly, Plutus is currently just available to develop with the playground or locally, there isn’t any way of deploying contracts yet?