Let us assume we have an Ethereum contract to issue software licenses. The contract creates an entry in it's local database to document the availability of the license to the purchaser. In which way should the issuer of the license check if it has been granted? Typically I would want to check this at runtime from within the licensed piece of software.

So more precisely the question is: What is the intended way for a third-party client to query the blockchain if the queries have to be run quite frequently and refer to potentially "old" data?

One commenter doubted that it may be useful to involve a blockchain at all in this task and asked for a motivation. One motivation might be that by putting license information into a blockchain you avoid distributing proprietary license files, which might open a path to a more generic way of software licensing. Furthermore, you do not have the license server as a single point of failure. And, as already pointed out by the commenter, the technical use of license would not be prevented even if the issuer goes out of business.


1 Answer 1


What's the motivation behind involving a blockchain in this? If the blockchain is just there for auditing or because somebody's boss read about blockchains in The Economist, you can ignore it and have the app check directly with the database. Make a separate blockchain screen to show the client with a bunch of hex numbers whizzing around connected to each other by little arrows.

If the goal is that the licenses can be traded without the involvement of the issuer, or that the software will still work even if the company maintaining the database goes bust, the database may not have the latest information, so you'll need the software to be able to check the blockchain, not just the database. YMMV but your best bet is probably to start with a light Ethereum client, and get your app to send it queries to your contract.

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