Hot answers tagged

10

I'm not an expert on this Quorum world. But as i've read, the main difference between the three mechanisms you mentioned is the % of BFT (Byzantinism Fault Tolerance). BFT is defined as: Byzantine fault tolerance (BFT) is the dependability of a fault-tolerant computer system, particularly distributed computing systems, where components may fail and ...


5

Possibly, it is block_voting.sol. I'm 90% sure. Also, I'm 90% sure that it's garbage. This contract is not used by Istanbul consensus. Some evidence (with radare2): Cut "code:" content from "istanbul-genesus.json", and paste to text file "istanbul-cintract.hex". Remove "0x" prefix: "606060405236156100c45760e060020a6... Transform it to binary by "rax2" ...


5

You need Ether in the account. But Ether is not deducted from the account. Check this issue issue38


5

Updated: Since Quorum v2.2.1, we now support remote signing for raw (read signed) private transactions. The API is explained in several places, but a great starting point is Quorum.js hosted here: https://github.com/jpmorganchase/quorum.js/ Original: answered Sep 10 '18 at 18:54 At the moment, Quorum does not support sending signed / raw txns that are ...


5

I hope I understand you question correctly. This is the code I came up with. It is tested and should be working as expected (at least in my opinion). pragma solidity ^0.5.0; contract simpleexample{ bytes32[] inputHashArray; function addNewHash(bytes32 input) public returns (uint) { inputHashArray.push(input); return inputHashArray....


4

The code is at https://github.com/jpmorganchase/quorum There are related repos at the parent https://github.com/jpmorganchase, such as quorum-examples, quorum-docs, constellation, and cakeshop. https://www.jpmorgan.com/country/US/EN/Quorum has a summary and other information such as: Quorum is an enterprise-focused version of Ethereum. Quorum is ideal for ...


4

I found the solution, please refer, #296 Use FastRawTransactionManager to speed up your transactions. Use RawTransactionManager to shorten the polling interval. If you need both, use the following code, pollingInterval = 3000; // 3 seconds FastRawTransactionManager fastRawTxMgr = new FastRawTransactionManager(web3, credentials, new ...


4

inside module.exports, add Gas and gasPrice. network_id: "*", // Match any network id gasPrice: 0, gas: 4500000


4

This paper Performance Evaluation of the Quorum Blockchain Platform gives a good comparison between Raft and IBFT in term of latency and throughput.


3

A Quorum node's keypair is generated using Constellation. Depending on which version you have, you run either of the following to generate tm.key (private key) and tm.pub (public key) files. You can just hit return when prompted to set a password unless you really want one. Old way: constellation-enclave-keygen tm New way: constellation-node --...


3

From JP Morgan released its implementation of a permissioned version of Ethereum, the GitHub repository for Quorum is at https://github.com/jpmorganchase/quorum. From the repository: Quorum is an Ethereum-based distributed ledger protocol with transaction/contract privacy and a new consensus mechanism. Key enhancements: QuorumChain - a new consensus ...


3

As far as I know, JPMorgan's Quorum is ready to use with quite guarantees (which doesn't mean that it couldn't be improved or stuff like that). Think about that, Quorum isn't more than the Raft Consensus Algorithm but hoarding control about some Byzantinism, not all of them because on a private/permisioned blockchain, you can asume that not all of the ...


3

The requirements for private txn (Quorum only) posts are a lot different than a regular txn (vanilla Ethereum) mainly because the underlying privacy layer is handled as another p2p communication network and the timing it takes to encrypt and transfer the payload between constellation nodes. Essentially, Ethereums sendTrascation is already async since its ...


3

privateFor is used for sending Quorum's private transactions. As described in Quorum docs, a private transaction is encrypted using the EC public key of the recipient. That way only the recipient can decrypt it using their private key. Generally, the public key is needed to encrypt data "for someone". As to why someone's address isn't sufficient - an ...


3

The issue here is that you've provided a 'privateFor' value - quorum therefore treats it like a private transaction; however the privateFor value you've provided is an empty list, so it gets rejected. If you provide a null value for privateFor then you'll find that it works fine. (BTW that GASLIMIT value in DeployGasProvider is pretty high, so you may find ...


3

Quorum adds a number of features into plain Ethereum, tho from perspective of using it or developing a dapp with it its practically the same. These features are what make Quorum enterprise ready and they are: privacy (as in peer to peer privacy through private smart contracts), permissioning (as in ability to set up the entire chain's nodes), pluggable ...


3

I can't speak to the others as I work on Quorum, but there are a few good sources that our team uses and references. Here is performance evaluation done by an external team with published method and results: https://arxiv.org/abs/1809.03421 Here is one of the tools we use that tries to standardize a way to submit and measure txn throughput in ethereum like ...


3

Please provide the consensus mechanism you are using. In case it is raft please provide the output of raft.cluster In case raft.cluster returns null you have to delete some internal file.


2

A transaction's receipt is only generated if the transaction ends in success. If the transaction ran out of gas or threw an exception, the receipt will not be generated. The first thing I would check is that the transaction ended without error. If the transaction ended successfully, then the next most likely cause of no log would be that you're querying the ...


2

Try the following, from If you need some Ropsten Testnet ethers...: geth --testnet removedb geth --testnet --fast --bootnodes "enode://20c9ad97c081d63397d7b685a412227a40e23c8bdc6688c6f37e97cfbc22d2b4d1db1510d8f61e6a8866ad7f0e17c02b14182d37ea7c3c8b9c2683aeb6b733a1@52.169.14.227:30303,enode://...


2

You use the privateFor: parameter. More details here. https://github.com/jpmorganchase/quorum/wiki/Using-Quorum#creating-private-transactionscontracts Hope it helps.


2

geth --datadir qdata/dd1 init genesis.json geth --datadir qdata/dd2 init genesis.json geth --datadir qdata/dd3 init genesis.json and so on..... This is the same genesis file that it is using to initialize. It is not different hence not a different blockchain. You are on the same chain if 1. You have the same network ID 2. Your genesis block is exactly the ...


2

I think you may be running into a difference between Quorum and Ethereum. From https://github.com/jpmorganchase/quorum/issues/190: The reason the number is so large is that because it's in nanoseconds, not seconds, since epoch. With raft-based consensus we can produce far more than one block per second, which vanilla Ethereum implicitly disallows: the ...


2

No. Not directly. The consensus mechanism is too different. You could conceivably run both kinds and nodes and you can create bridge services that use provable event emissions from one chain to trigger transactions on the other. Hope it helps.


2

As you said, you can do everything without web3. Most users just don't find it easy to do most of the things web3 does for you. So web3 is just a wrapper library which provides easy-to-use access to various functionalities. It makes development a lot easier for those who are not hardcore blockchain enthusiasts (who don't want to write RPC calls). In doing ...


2

Quorum is a specialization of Ethereum. My answer and approach applies to both platforms as it does not touch on Quorum-only matters like privateFor. The way the question is framed suggests some conceptual matters to clear up. Let's start with the low-hanging fruit. Data lineage is a given in both cases. These are append-only systems where nothing can exist ...


2

Even though, in Quorum a user can send transactions for free, Quorum does not provide a DDoS protection more than what Ethereum do. To verify the above statement, you can check Quorum documentation and you will find nothing about DDoS (Wiki: https://github.com/jpmorganchase/quorum/wiki). Additionally, you can go to Quorum and the original Ethereum ...


2

If the node mucks with its local DB, this node will fall out of sync with the blockchain and will not advance its chain anymore. This is unmodified from original Ethereum and is part of block validation process.


2

They are separate things, but privacy modifications to Quorum allow Ethereum based smart contracts to benefit from ZSL as well. See this repo for an example: https://github.com/jpmorganchase/quorum-examples/tree/zsl_geth1.6


2

In Quorum, all the nodes are synced up same way as regular Ethereum would, except the blocks may come in from a leader rather than another node. So, a new node joining the blockchain would sync up as usual by receiving blocks from the current leader + participants. Once it catches up, it will be receiving blocks from the leader. Geth / Quorum allow for a ...


Only top voted, non community-wiki answers of a minimum length are eligible