Hot answers tagged

3

IBFT Consensus is inspired by Castro-Liskov 99 PBFT paper. Like PBFT, in IBFT a block is confirmed by passing through PREPREPARE, PREPARE and COMMIT phases and like PBFT, the validators moves through series of Rounds. If a block is not commited in a given ROUND, the validators move to the next ROUND and try to commit a block in that ROUND. Both Hyperledger ...


3

Your code is a good example of sending a public txn that is externally signed, but it is not a private txn, thus the contract is available on all nodes of the chain. Sending a private txn is a bit more complicated and involves an additional set of keys and servers -- these belong to Private Transaction Manager (Tessera) on your network. We do have a set of ...


3

Azure provides an RPC security layer that enforces access control to the network. In order to provide authentication to your RPC interface you can use basic authentication, certificate based authentication or you can link to your identity provider. After you are part of the network (rpc auth passe) you have Quorum state authorization layer (what is called ...


3

You are correct - anyone with the address & ABI can call a public contract. The only way to prevent this is to have code within the contract that checks for calls from authorized addresses. If a private key is lost then the contract would need to be updated to replace that authorized address. I suggest you take a look at Quorum's smart contract based ...


3

There is no limit on the number of blocks. It's possible there is an error in your contract or web3.js code which is only manifesting after a number of iterations. Also, make sure you're still passing the correct parameters to your contract. If I search for that error message "BigNumber Error: new BigNumber() not a base 16 number", then I can find a number ...


2

As per the response from Florian - follow the instructions in the docs for Creating Private Transactions/Contracts. Make sure you have a transaction manager running for each node (e.g. Tessera). Essentially you just need to add a 'privateFor' field to the transaction; this must contain the public key of the private transaction participant (i.e. the public ...


2

In theory, yes. But the chances for that to happen are next to nothing. For an exchange to accept your coin they would have to: 1) Trust your blockchain that it's fair, valid and uncompromisable 2) Run their own node in your blockchain (they certainly don't want to trust your or somebody else's nodes even if they trust the blockchain) 3) Evaluate your ...


1

so the problem is that your solidity compiler outstrips the abilities of the Quorum version you are using. This means that you compile newer solidity code that Quorum v2.2.1 cannot run correctly. You have a few choices here: Downgrade solidity code and compiler to 0.4 / 0.5 Upgrade Quorum client. Latest version of Quorum is v2.7.0 and it would work just ...


1

are you sure tessera is running ? are you sure the ipc file is at the location specified 'qdata/dd1/geth.ipc' ? how are you running the network ? are you using Quorum wizard ?


1

In Quorum, the main chain has hashes of the encrypted transactions that are exchanged by participants in a privateFor transaction. This not open to interpretation by other nodes, by design. Events emitted by transactions are the result of nodes interpreting the transactions and any bytecode that is involved. One might say events are not broadcast per se ...


1

there are three types of front running attacks; displacement, insertion, and suppression and they can be symmetric and asymmetric. front-running is pervasive issue tell the moment, however the impact of the issue will depend mostly on the DApp Design. That said as you already know ethereum uses gas price and nonce for transaction ordering, since the gas ...


1

the following config in the genesis.json solved our problem. We are using solc @0.5.10. { "alloc": { "0x7D32b1996b64515567c8C20168ec323850D48801": { "balance": "1000000000000000000000000000" }, "0x369DA55d3C7B1494447765559D83DCa0B62aB620": { "balance": "1000000000000000000000000000" }, "...


1

Adding to the answer by @fixanoid, I got the following reply from the Azure blockchain service team "Currently we don’t support sending signed private transactions as we have not exposed tessera port for sending private transaction so web3.sendRawPrivateTransaction will not work. To send private transaction you have to use web3 sendTransaction function not ...


1

You can do that but there are some subtleties to work out. It is recommended to use a withdrawal pattern rather than sending a transfer to someone other than msg.sender. There are security concerns talking to more than one untrusted contract at a time, so the safe bet is to just do some accounting rather than intiating a .transfer(). An exception is token ...


1

I am pasting the solution here that i got as a response from the slack channel, almost verbatim. By default, EthereumJS-Tx signs for the Ethereum Mainnet. Transactions made for custom networks have some of their values changes, and this needs to be taken into account when signing the transactions. What has happened here is we have signed the transaction ...


1

So, my recommendation is to update to the latest version: v2.3.0. Depending how the 2.2.3 was configured, minting node may ignore globally set block size, to ensure that it doesnt, use --miner.gastarget XXX and --miner.gaslimit XXX-- set these sufficiently high for your use case.


1

Looks like the cors domain isn't correct, you'd need to enter the url of remix in there. We have a detailed presentation that talk about how to do this in some detail here: https://docs.google.com/presentation/d/1vMBVKTJyKbGwZaMqwxA7VaCTEXELA5kLf56byZIbD3g


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