I am trying to get the understanding needed to develop an Ethereum based application.

Lets say if I want to develop an inventory system. Here are the basic operations Purchase inventory, Maintain stock, vendor and Inventory Issue transactions to various departments.

So help me understand the basic design structure while implementing it in Ethereum block chain.

Just to start with what all contracts will be needed

  1. Contract for Inventory stock operations

-> Struct to hold inventory data -> Struct to hold Departments -> Vendors will be basically an Ethereum blockchain user -> initialize inventory -> add departments -> buy inventory -> issue inventory

  1. Should this blockchain be created in a private ethereum blockchain (i.e. lets say with a networkid starting with 5 and common across all nodes) as developing for a specific company

  2. Each vendor should be registered in that blockchain network and have some ether balance

Like in case of a regular centralized application following kind of structure is expected 1. Table structure to maintain following - Inventory, Vendors, Departments, PurchaseOrders, IssueOrders etc.

My question maybe a bit vague but intention is to understand the perspective of the basic design strategy in case of blockchain based applications

  • 2
    Hi there :-) Your request is quite broad in nature, yes. While certain design patterns in Solidity and smart contracts have started to coalesce, there are still lots of things that are open to creative interpretation. What you're asking is the sort of thing that would be better suited to a whiteboard chat, rather than something someone could provide a definitive answer to. I'd start looking into the design yourself, and then use this forum as a way to ask more specific technical queries. For a more discursive forum, one of the Reddit boards would be better suited. – Richard Horrocks Mar 17 '17 at 15:45
  • I definitely agree that it does require a white board discussion on this topic and that's the reason I too mentioned that this maybe a bit vague. What I am expecting is people who are developing dapps how do they think from design perspective what can be applied. A rough idea will be great to get a perspective and then can start working that direction. Otherwise many a times it happens you start thinking in one direction and later have to change to completely. – Susmit Mar 17 '17 at 16:30
  • As Richard suggests, other forums are more suited for this question unlike Stack Exchange: meta.stackexchange.com/questions/92107/… – eth Mar 24 '17 at 20:33

Any particular reason you want to do this only with Ethereum? I would say, start with a permissioned blockchain,one which does not require ether/ gas to participate. I also suggest reading on the difference between public, private and permissioned blockchain.Then you can think about what fits the use case you are trying to build. It is imperative that developers understand the blockchain ecosystem first before getting their hands dirty otherwise the resulting solution won't be able to project the value blockchain brings to the table.

  • Basically I am trying to understand what all things can be done using Ethereum as am pretty new to it. So I just want to build my understanding in this regard to find the possibilities. Secondly can you provide few links where I could get in depth detail on permission blockchains using Ethereum. – Susmit Mar 24 '17 at 18:07
  • Till now I have come across Quorum. Idea is to create a decentralized app which could be used by limited/private parties. If a private blockchain is built on Ethereum where scheduled mining could be done to keep it running and then distributing the ethers based on a some custom logic do you think it can work or it will just be a by way. – Susmit Mar 24 '17 at 18:16
  • That is one way to do it. However, we should brainstorm about " why there is a need of Ether in general? Do we really need it in your case in particular?" What you plan to do, does it require a value transfer in the form of an underlying crypto currency. I am refraining from answering your question directly so that you can think more clearly about what you are trying to achiever here with Blockchain. – Hitesh Joshi Mar 25 '17 at 15:07
  • So if you want to run on public domain then miners need to be rewarded for processing the requests as their resources are used. Secondly any method of a contract cannot be recursively invoked endlessly. Now specific to the first need if any organization is ready to bear the cost of mining in a private network then they don't need any reward. Secondly in a private chain as enough Ethers could be generated and allocated to specific miner accounts. Automated distribution logic could be applied, introducing token concept. Specific number of tokens will be provided to various parties later refueled – Susmit Mar 25 '17 at 15:17
  • 1
    Again, what you stated above is correct and is one way to do it. But is it neccessary to have miners? Question is do you really need a POW(Proof of Work) based consensus mechanism in a non public blockchain. What are the alternatives? You might want to look at Tendermint consensus and the corresponding products which use such consensus by Monax/Eris. You might also want to look at Hyperledger fabric and the work they are doing with pluggable consensus. I am exploring the same , let me know what you find. – Hitesh Joshi Mar 28 '17 at 2:11

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