title: What is the best way of storing the clients registration information off-chain in hyperledger fabric
body: <p>I want to create an application with the Hyperledger fabric network and I'm unsure what the optimal way of processing and storing the clients information is. It is important for me that the personal information get stored off-chain to not slow down the network.<br />
  Right now this is the process I thought about:</p>
  <ol>
  <li>Client fills out form in frontend</li>
  <li>Application (backend) generates unique UUID</li>
  <li>(registering enrolling UUID in the wallet) <strong>unsure about this step</strong></li>
  <li>Chaincode gets called which saves the UUID in the state database</li>
  <li>The UUID and the personal information like Username, email, password get encrypted and saved in an off-chain database like postgreSQL.</li>
  </ol>
  <p>That way the UUID can be connected to the personal information because the UUID is also stored off-chain and it is still totally anonymous.<br />
  But is it necessary to register and enroll the user through the Node SDK with the <a href="https://hyperledger.github.io/fabric-sdk-node/release-2.2/FabricCAServices.html#enroll__anchor" rel="nofollow noreferrer">enroll and register function</a> before being able to access the chaincode, because without the registration there would be no identity for the client in the network?<br />
  And I'm also cunfused if this <a href="https://github.com/hyperledger/fabric-samples/blob/master/fabcar/javascript/registerUser.js" rel="nofollow noreferrer">function</a> from the fabcar samples is the same as the <a href="https://hyperledger.github.io/fabric-sdk-node/release-2.2/FabricCAServices.html#enroll__anchor" rel="nofollow noreferrer">enroll and register function</a> from the node SDK?</p>
  <p>Thanks for your efforts and helping me understand this matter.</p>