0

I have to develop a system for Univeristy which provides digital certificates. I know some approaches but stuck about which approach I should choose. The system will have (suppose 5 nodes + 1 super node). Super node will generate addresses and provide it to other nodes to use. Now each node will have their login(address + private key). They will login to their dashboard and generate digital certificates.

There are 2 ways to go:
1. Use testrpc accounts in Metamask on localhost, login to dashboard with that account and perform transactions using that ether.
2. Create accounts using Geth, mine ethers, then use that accounts for login to dashboard and perform transactions.

I have to final deploy the system online so that anyone can view the stored degrees. So which approach should I use? Which approach is best suitable for this system?

I am new to Ethereum development. Any suggestion regarding this will also be appreciated.

Thanks!

  • If it doesn't need have to be a private network, then would consider using a public Ethereum testnet, Ropsten, Rinkeby, Kovan or Goerli. You can then focus on the smart contract and dApp rather than the network. – abcoathup Aug 9 at 0:08
  • 1
    @abcoathup Thanks but it will be a private network. – Prachi Sharma Aug 14 at 6:21
2

In Ethereum there is no such thing as super nodes. You can have several differ sync types like.

Fast, Full and Full(archived). But they will all be able to donthe same.

Also doing this in mainnet might get a bit pricey.

Let me suggest you checkout test nets for Ethereum Classic like Kotti. Where you can receive test Ethereum for free through a faucet and TX are only set to a cost of 1gwei.

There is also a Json-rpc API that helps you quickly start Ethereum based nodes and makes further API calls to them, for instance you can make a RPC call to your node to generated Ethereum Addresses or to fetch info from a smart contract.

The API can be found at: https://github.com/ethernodeio/enapi

  • Thanks for this. Json-rpc API is what I wanted. – Prachi Sharma Aug 14 at 6:25
0

It's always better to test your system using a private testnet (first on your localhost as you mention, and then on a public testnet such as Rinkeby or Goerli where ETH is still free and "mined" via a Proof-of-Authority (clique) mechanism. Then you can find and fix mistakes without spending real money.

If I understand your question correctly, or if I can liberally paraphrase: you want to know

1) is it viable to keep your production system on these public testnets indefinitely to save operating costs? 2) if you deploy to the Ethereum mainnet, how can you give your users ETH in order to use it? (e.g. do you have to mine it yourself)

Those are both interesting questions, and here are some thoughts I have.

1) I've considered staying on Rinkeby indefinitely for dapps that need to be publicly accessible (e.g. the records of a cooperative or a DAO) but don't need to interact with real money / fiat currency, since testnet ETH is not publicly traded and is by convention worthless. The downside is that you don't personally know the validators of Rinkeby or any other clique testnet, and they could always collude to forge blocks in the future and you woulnd't have a way of knowing. You can set up your own private clique testnet with multiple servers (e.g. on AWS or Google Cloud), but then you are back to running your own centralized servers, and your users have no way of knowing if data is forged or smart contracts are being run correctly.

2) If you deploy to the mainnet, your university may wish to "sponsor" transactions so that everyone can participate (run contract methods) for free, using a mechanism calleed "meta-transactions". Here's some good articles that explain more

The transactions are cheap, probably a few cents each time, but it is a hassle and a poor user experience to require users to load them wallets and spend their own money to do simple operations that are expected to be free on conventional web systems.

So congrats, you've hit upon two big questions for any dapp that wants to be useful to non-technical users, without requiring them to know details of Ethereum.

  • Are you answering another question? – Samuel Dare Aug 9 at 15:05
  • Nope, answering the question above. – Paul Pham Aug 10 at 13:16
  • Well this is not the answer to the question I asked but I needed to know something like meta-transactions for further development. I'll consider this if required. Thanks for this. – Prachi Sharma Aug 14 at 6:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.