Issue a native asset from the mobile app

+1 vote

We are developing a Blockchain based product for our own digital passes product to convert the whole system from centralized to decentralized App.

We need the following:

1 - Client be able to issue a digital pass to anyone he wants him to use to open the gate (we have a hardware associated to the gate, each lock has a digital certificate issued by the user’s pubkey at the setup process), if will go through issue a native asset option in the Multichain, how can we make it possible from the client’s mobile app? Do we need to let the client run a simple node with certain permissions from his mobile app (wallet)?

2- How can we store the client’s basic info (name, address, email…etc.) on the Blockchain and make it editable from the UI (our website)? Can it be done using streams? as we don't like to go the server solution and we want make the whole process fully decentralized.

Thanks in advance.

asked Jan 30, 2018 by memo76

1 Answer

+1 vote
1. The simplest solution is to run one or more nodes that belong to the client, and build a small (authenticated of course) web services interface between the mobile app and the nodes, to allow the client to control their node remotely from the app. Or you could give the app direct access to the node's JSON-RPC API, if your security policy permits it. The other alternative is to build a lightweight SPV wallet inside the mobile app itself, and have it communicate directly with the blockchain as a whole, but this will likely prove more complicated.

2. You should definitely use streams for this kind of general data storage mechanism. If you're comfortable using early release software, you can enjoy the JSON functionality in MultiChain 2.0 alpha. Otherwise use MultiChain 1.0.x and bundle up your data into binary format.
answered Feb 1, 2018 by MultiChain
Thank you so much for your answer.

According to the question number 2, if the user wants to change some of his info ( his email for example) how can we do it while the block by nature is immutable and we can't the data once the block is mined?
You would just post a new stream item with the update. If you are using MultiChain 2.0 alpha, you can use the getstreampublishersummary API to merge all the JSONs published by a certain address together, and take the most recent value for each of the keys. In earlier versions of MultiChain you would need to handle this at the application level.
thank you so much for the great support
...