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 ...


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

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 ...


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

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

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 ...


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 ...


2

privateFor field is not written into the txn data and thus is not sent on to any other participating nodes. The actual txn with privateFor field is processed by quorum node and is sent to the underlying constellation node. Constellation communicates with recipients to transfer the actual payload and returns txn hash: this is whats actually written onto txn ...


2

I fixed this issue by increasing the transaction size to 64KB in tx_pool.go DOS is less applicable for private Ethereum networks such as Quorum. // Heuristic limit, reject transactions over 32KB to prevent DOS attacks // UPDATED to 64KB to support the deployment of bigger contract due to the pressing need for sophisticated/complex contract in financial/...


2

AFAIK, No. Quorum and ethereum are not interoperable. A simple argument will be the consensus algorithm used by these two : quorum uses RAFT and ethereum uses the proof of work. Also, quorumuses extra cryptography tools in order to privatize the viewing of transactions between parties, which is contradictory with ethereum. Making them tag to each other can ...


2

The general pattern for things such as this is to disable all remote comms (no --rpc at all) and only use local ipc and wrap this set up with a custom app / api to do what you are trying to do. That said, Quorum does not support sendRawTransaction in private mode at the moment.


2

Ethereum also maintains latest state and transitions it when new blocks are received. Quorum is a fork of Go-Ethereum implementation and does exactly the same + adds private state on top of public state. LevelDB is used to store that state. Fabric and many of the others are benefiting from this design originally proposed in Ethereum papers.


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