Deploying to BlockChain
Blockchain technology can be used in many different ways with NeuroKernel from storing entire application to calling micro services in smart contracts. Plugin application technology will allow using these block applications as part of a NeuroKernel application that lives on the web. In this document you will find some possible ways to utilize blockchain technology on NeuroKernel.
1. Storing Application URL
An application URL can be stored to a block and accessing to the latest transaction in this block will reveal the latest URL location of the application thereby it will never get lost by the users if the domain or deployment medium of the application changes in the future. Essentially, your application, plugin application or device will be forever available to the users. There is always a transaction fee involved with a public blockchain network. It would make much more sense to create your own blockchain network in your company to make this work which may be overkill when there are simpler alternatives.
2. Storing IPFS Hashcode
IPFS is a useful decentralized file system. It keeps a history of files. Every file has a hash code associated with it, and through a gateway one can reach to these files from the web browser. Anyways, an application can be deployed to IPFS network, and its main deployment hash code can be stored to a block in the blockchain network. This way, applications would not require a web server node to be deployed. IPFS is public and accessible by anyone so it is probably best suited for open source applications, plugin or device developers. There is actually no need to use a blockchain network if you want to deploy your application to IPFS. There are gateways and pinning services that are freely available for the purpose.
3. Storing Entire Application
Storing entire application into a block is also possible. Instead of storing just the URL, developers may put the entire application code to the block; however, block size limitations of the blockchain network used may impact the deployment. Some blockchain networks offer limited block size. On the other hand, storing data to a public blockchain such as Ethereum may cost too much because of the transaction fees.
4. Transactions as Versioning
By deploying new versions of the application as a URL or as a whole means the new version will be available to the users or developers immediately as the latest transaction in the block. If you have money to burn, you may deploy your entire application to a public blockchain such as Ethereum.
5. Using Smart Contracts
Smart contracts are small bits of code that give transactions some logic. They are meant to run and exit. It is not really possible to run applications like a server running at the background in a smart contract. That defeats very purpose of it. It will also cause staggering scalability problems bringing the entire network on its knees slowing transactions to hours. We are appalled to see some projects claiming to achieve this. On the other hand, smart contracts can be used as micro services that will get the input and create an output or transaction. It is possible to write NeuroKernel applications that would ease the transaction process by giving a desktop application sense. The blockchain does not have to be only financial. It would be for telemetry, security or medical information purposes.