If you are not a ChannelWriter you will not be able to invoke chaincode (propose) on an endorser, and therefore identities that are ChannelReaders but not ChannelWriters have no mechanism to call read-only chaincode functions. Based on the role name, I would expect ChannelReaders should be able to call chaincode read-only functions.
Currently in 1.1 this can be achieved by overriding the Propose ACL to be something different than ChannelWriters. This work item proposes that ChannelReaders should be able to call chaincode functions that read from ledger using the default configuration.
Option 1: Re-introduce a chaincode Query() function (it was there in 0.6 but not 1.0, removed in -
-), which would only require you to be a ChannelReader to call chaincode read-only functions (functions that attempt to write in the context of a Query would immediately return an error). The Query() would also be more streamlined than Invoke() as the peer simulator would not need to generate a RWSet and the ProposalResponse would not include a RWSet. FAB-1055
Option 2: Set the Propose ACL to be ChannelReaders instead of ChannelWriters. If the chaincode simulation has writes, then we could additionally ensure that client is a ChannelWriter.