Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tessera "storeraw" endpoint is not available --> can't perform private transactions #114

Open
bmasarwi opened this issue Jul 2, 2019 · 3 comments

Comments

@bmasarwi
Copy link

bmasarwi commented Jul 2, 2019

Hi guys,
I'm using QuorumMaker to run a Quorum network with two nodes and Tessera. The command i used: "./setup.sh dev --tessera --project --nodecount 2"

Also, i'm using web3j's contract wrappers to perform a very simple private transaction, but it keeps failing with a "404 not found" response whenever QuorumTransactionManager attempts calling Tessera's "storeraw" endpoint.

However, when i use a different approach: "Quorum.ethSendTransaction( privateTransaction)" it does work. But this approach is very verbose and requires nonce management.

I think the second approach works because it doesn't go through Tessera's "storeraw" endpoint.

Somehow QuorumMaker runs Tessera with "storeraw" endpoint disabled, in comparison, Quorum's 7nodes example does have this endpoint available in Tessera, thus private transactions are available through TransactionManager.

How can i make QuorumMaker run Tessera with above endpoint enabled?

@ab-chowdhury
Copy link

Can you please try setting up a development network using the following command

./setup.sh dev --project Test --nodecount 2 --tessera

and then try performing private transactions by deploying private contract of quorum's 7 node example. Don't forget to replace the public key in privateFor field in private-contract.js file using your public key before deploying it.

@masarwib
Copy link

The issue seems to be caused by the a wrong generation of "tessera-config.json" which leads to some Tessera APIs being disabled. I replaced "tessera-config.json" by the following and it worked:

{
"type" : "config",
"useWhiteList" : false,
"disablePeerDiscovery" : false,
"jdbc" : {
"url" : "jdbc:h2:file:/node1/node/qdata/node1;AUTO_SERVER=TRUE",
"autoCreateTables" : true
},
"serverConfigs" : [ {
"app" : "P2P",
"enabled" : true,
"communicationType" : "REST",
"sslConfig" : {
"tls" : "OFF",
"generateKeyStoreIfNotExisted" : false,
"serverTrustCertificates" : [ ],
"serverTrustMode" : "TOFU",
"clientTrustCertificates" : [ ],
"clientTrustMode" : "TOFU"
},
"serverSocket" : {
"type" : "INET",
"port" : 22002,
"hostName" : "http://10.50.0.2"
}
}, {
"app" : "Q2T",
"enabled" : true,
"communicationType" : "UNIX_SOCKET",
"serverSocket" : {
"type" : "UNIX",
"path" : "/node1/node/qdata/node1.ipc"
}
}, {
"app" : "ThirdParty",
"enabled" : true,
"communicationType" : "REST",
"sslConfig" : {
"tls" : "OFF",
"generateKeyStoreIfNotExisted" : false,
"serverTrustCertificates" : [ ],
"serverTrustMode" : "TOFU",
"clientTrustCertificates" : [ ],
"clientTrustMode" : "TOFU"
},
"serverSocket" : {
"type" : "INET",
"port" : 22007,
"hostName" : "http://10.50.0.2"
}
} ],
"peer" : [ {
"url" : "http://10.50.0.3:22002/"
} ],
"keys" : {
"keyData" : [ {
"privateKeyPath" : "/node1/node/keys/node1.key",
"publicKeyPath" : "/node1/node/keys/node1.pub"
} ]
},
"alwaysSendTo" : [ ]
}

@zhoushuntong
Copy link

hi,masarwib, i use your method ,it doesn't work. wether something left?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants