I am trying to log all access operations on a file storage in Ethereum. The access operations are read, write, update and delete. Every time, a user does any of these operations on the file storage, I would like to log that into Ethereum. Since Ethereum and file storage are two disparate systems, the only way I can do this is by triggering a call to smart contract for every access event that happens in the file storage.

Q1: Is it possible to call a smart contract from an external system?

Q2: Is there a better architecture to achieve the same results?

1 Answer 1


Q1 Yes. An external system can interact through Web3 (JavaScript), one of the other client-side libraries, or jsonRPC. Think of the external system as a full participant with knowledge of private key for signing transactions from an externally owned account.

Q2 It's a very broad question. You can probably find some good information researching the topic of "Oracles" for Ethereum Smart Contracts. "Oraclize" and "Reality Keys". An Oracle provides information from the world outside the strictly deterministic blockchain.

Hope it helps.

  • External system should also run the light-client within self in order to connect into the public or private blockchain right? @RobHitchens
    – alper
    Apr 15, 2017 at 17:11
  • 1
    Hard to say. Maybe look a Infura for "Light Client" - includes IPFS and Ethereum. For IoT, have a look Project Oaken for ideas. Apr 15, 2017 at 19:49
  • @RobHitchens For Q2, is storing the access log in a mapping the best option? Do you think Ethereum events can be used for this purpose? I'm thinking this might be a typical application but can't find any reference architecture.
    – user6488
    Apr 16, 2017 at 17:26
  • @Avatar Question is too broad. Too many use-cases to guess what your application is about.Can't begin to guess at design ideas without knowing the purpose of the application. Apr 16, 2017 at 21:20
  • @RobHitchens The application is about logging access events of file storage. The idea is to share a bunch of files with a group of people and track all the access using blockchain. As an example, let's say we share a sensitive document with a group of people and want to track who all have accessed that document. By storing the access log in blockchain, we can provide an incontrovertible record of who all have read the document.
    – user6488
    Apr 17, 2017 at 14:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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