In my current understanding, (1) smart contracts are code stored in the blockchain network, and access the data in the blockchain network. (When we deploy contracts, we'll get the storage address)

(2) Lightweight nodes are those that do not download all the chaindata from network.

Correct me if I'm getting it wrong, but I believe that lightweight node can interact with smart contracts (Metamask?) It simply doesn't have to ability to fully verify the data it downloaded.

My problems are as follow: (1) Since the lightweight node doesn't have all data, how does it interact with the smart contract? Is the chaindata downloaded upon each request?

(2) While the code of smart contract may remain the same, the data will change with each update. How does the node know where to look for the updated data?

(3) Are code or data downloaded with other data that are useless for the smart contract?

I figured this is possible since the code and data are stored in blocks with other transactions, and if downloads are in the unit of "blocks" then it will include other data

(4) Any suggestions on how can I monitor these network usages?


1 Answer 1


Lightwallets are basically modules that provide the functionality for signing transactions locally on your PC or in your browser. These signed transaction are sent via RPC to a remote full node, where they are added to the blockchain.

So light wallets do have access to the entire chain and all contracts without having to download the chain data, not even partially on request.

Interaction with the contracts is therefore through the remote node, and the remote node always has access to the most recent data, as long as it is in sync.

Metamask illustrates nicely how a light wallet works in its Architecture section of its github readme.

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.