All Questions

Filter by
Sorted by
Tagged with
34
votes
3answers
8k views

zk-SNARKs vs. Zk-STARKs vs. BulletProofs? (Updated)

zk-SNARKs, Zk-STARKs and BulletProofs are three major zero knowledge proofs to provide privacy for the blockchain technology. If we can compare them, (1) Bulletproofs and Zk-STARKs require no ...
34
votes
3answers
5k views

Concurrency patterns for account nonce

The account nonce is the only element in the transaction structure that prevents replay attack (as explained in this very good answer). It essentially forces sequentialisation of an account's ...
33
votes
6answers
21k views

ecrecover from Geth and web3.eth.sign

I have tried to use ecrecover() to verify the signature of a message. I have looked at lots of references here and elsewhere, like: https://lab-blog.ey.com/2016/12/19/ecrecover/ How does one ...
33
votes
4answers
6k views

What is Olympic, Frontier, Morden, Homestead and Ropsten Ethereum blockchain?

I am studying Ethereum and have not been able to figure out the difference between Homestead and Morden. In some docs, it is written that Homestead uses a new algorithm which takes less time. I don't ...
33
votes
1answer
48k views

How to initialize an empty array and push items into it?

Here's my function: function Test() constant returns (uint[]) { var myArray = uint[]; myArray.push(123); return myArray; } Here's an error I get in the solidity online compiler: ...
33
votes
3answers
37k views

How do miners profit post-PoS, if at all, how will new miners get their start, and who will execute the EVM byte code (and why)?

I've been following the release of Casper/PoS closely, and I'm curious about a few details. How will miners make money (even if GPUs are less valuable)? Are spare compute resources (say RAM, CPU) ...
32
votes
3answers
15k views

What are the limitations to estimateGas and when would its estimate be considerably wrong?

web3.eth.estimateGas and JSON-RPC estimateGas can be used to see how much gas should be specified for a transaction, before crafting the transaction. Since it is an estimate, are there any ...
32
votes
5answers
25k views

Returning a struct and reading via Web3

I am storing data in my contract using a mapping of structs. For examples sake, say I'm storing employee info (name/address/salary), mapped by their employee ID. Via a web front-end, I'd like to be ...
32
votes
3answers
21k views

Why is ether divisible to 18 decimal places?

1 ether is 10^18 wei, the smallest denomination. Why does ether have such a high degree of divisibility?
32
votes
5answers
24k views

How to access the event log by knowing the contract address (web3)?

How can I access a log stored in one of the tx of the contract via web3? Code example: event newtest(string indexed name, uint indexed idlevel,string indexed multib, string objmulti, uint objnm); ...
32
votes
4answers
41k views

Is it possible to cancel a transaction?

Is it possible to cancel a transaction after it has been broadcasted, but before it has been mined? This could be useful on sending an erroneous transaction containing invalid data.
32
votes
4answers
42k views

error: replacement transaction underpriced

Im trying to send a raw transaction using web3 to ropsten testnet and Im getting this error: replacement transaction underpriced where sometimes my tx works and sometimes I get this error. my tx ...
32
votes
2answers
25k views

Remix warnings - state mutability and public visibility

I noticed the new Remix gave me two new warnings: browser/Untitled.sol:6:5: Warning: No visibility specified. Defaulting to "public". function setFee(uint _fee){ ^ Spanning multiple lines. ...
32
votes
4answers
15k views

What is an 'EOA' account?

Cointelegraph has recently written about 'EOA' in relation with contracts and accounts. As an EOA, the state simply stores the account's balance in ether and a sequence number is used to prevent ...
32
votes
1answer
9k views

When should I use calldata and when should I use memory?

I have seen people use both memory and calldata keywords when writing Solidity. Specifically, they are used when declaring function parameters. When should I use memory and when should I use calldata?...
32
votes
2answers
20k views

What is the ethereum transaction data structure?

I'd like to know the detail of the Ethereum transaction data structure. What data is stored in transaction?
32
votes
3answers
6k views

What is a replay attack?

During the launch of the frontier network, users were cautioned not to reuse keys from the Olympic testnet in order to prevent "replay attacks". What is a replay attack, and why would re-using a key ...
32
votes
6answers
5k views

How can a DApp detect a fork or chain reorganization using web3.js or additional libraries?

Take an example of a voting DApp. A user clicks on a vote button, then behind the scenes a transaction gets mined on the blockchain, and finally the DApp tells the user their vote has been recorded. ...
32
votes
3answers
31k views

How can I view event logs for an ethereum contract?

After reading the this post, it seems like I should be able to access the logs of events that have been called on an Ethereum contract. The section I am interested in is Option 3 which is using event ...
31
votes
4answers
14k views

How to create a Dapp from scratch on Ethereum?

Let's say we have someone who knows about blockchain but who doesn't have any background in blockchain-based application. That person wants to code an ethereum-based Dapp (decentralized application) ...
31
votes
8answers
14k views

What are the development tools for Ethereum?

Could someone make a list with development tools for Ethereum together with a short description what they are good for?
31
votes
2answers
12k views

How to encrypt a message with the public-key of an Ethereum address

I am writing some code in nodejs/browser. I have successfully created ethereum-addresses with the secp256k1-library. I was also able to sign and verify messages. Now I want to encrypt/decrypt a ...
31
votes
5answers
9k views

How to detect if an address is a contract?

I'm interested in knowing whether any particular address is a contract address or a standard address. There have been similar questions on the topic, but I'm not looking to detect whether an address ...
31
votes
4answers
18k views

How can I represent decimal values in Solidity?

I just started writing some solidity and I noticed that there are no decimal values such as double or float. What do you guys do when you need to return send to a wallet let's say 1.57 ether? Or when ...
31
votes
3answers
13k views

Ethereum Merkle Tree Explanation

Here is my basic understanding about how Ethereum stores transactions A hash is generated for each transaction Then pairs are selected and a hash is generated for each pair This way the last ...
31
votes
1answer
22k views

How to update a deployed smart contract? [duplicate]

I've started developing smart contracts with Truffle and when I edit a contract I always redeploy it by adding another migration script. There are two things that I wonder about: Is this the way it ...
31
votes
1answer
4k views

What is coinbase?

What is the ethereum coinbase? I understand it is an account, but what makes it different? Is it the same as Etherbase? I've read it's the "default account for your console session." Does that mean, ...
31
votes
5answers
30k views

Can I download the whole blockchain from somewhere?

Bitcoin used to offer sharing/downloading a bootstrap.dat which contains the whole blockchain. Are there alternatives to getting it trickling through the peer-to-peer network? Can I just download it ...
30
votes
3answers
8k views

Can a contract safely rely on block.timestamp?

How safe is it to use block.timestamp as contract expiration time? If a miner provides an incorrect timestamp in a block header, how much can it be off before it is rejected by other nodes? Is there a ...
30
votes
2answers
24k views

Can we get all elements stored in a mapping in the contract

Can we get all elements stored in a mapping in the contract using web3.js ?
30
votes
4answers
43k views

How to call my contract's function using sendTransaction

This may be a very basic question, I don't know why but I am unable to find correct solution to how can I call my contract's method using sendTransaction. I have a transfer(address, uint256) function ...
30
votes
7answers
35k views

web3.eth.contract is not a function when making contract

Whenever I try and make a contract, I get: web3.eth.contract is not a function I'm using this code: const path = require('path'); const fs = require('fs'); const solc = require('solc'); ...
30
votes
1answer
16k views

Ways to see if address is empty

Is owner > 0x0 a good way to test if an address owner was set in Solidity? I am not sure if this could break something in the future and if there are better ways to see if the address was set. What ...
30
votes
10answers
12k views

How can you handle an expected throw in a contract test using truffle and ethereum-testRPC?

Is it possible to write a test using truffle that attempts to confirm that a throw occurs in a contract? For example, if I had a contract with function... contract TestContract { function testThrow(...
30
votes
5answers
22k views

web3: How do I get past events of myContract.myEvent?

I use the following JS code to get notified of Solidity events and it works well for incoming new events: myContract.myEvent().watch((error, result) => { if (error) console.log('Error in ...
30
votes
2answers
10k views

Why do Solidity examples use bytes32 type instead of string?

In many Solidity examples I read that use strings for parameters or return values, I see they are typed as bytes32 although there's a string type. What is the real reason for that? Thanks.
30
votes
3answers
28k views

How does Mapping in solidity work?

I went through the Crowdfunding example in solidity where i encountered the following: contract Crowdfunding { struct CampaignData { address recipient; uint contributed; uint goal; ...
30
votes
1answer
18k views

How does the delegatecall method work to call to another contract's method?

I'm trying to figure out how to use the delegatecall method on a contract address in a contract to call a function in a separate contract. I know Libraries are the higher level interface to use but I ...
29
votes
6answers
8k views

how to catch “revert” error in truffle test javascript?

How can I catch "revert" error in truffle test written in javascript? Error: VM Exception while processing transaction: revert Here is part of test contract, function doRevert() public { ...
29
votes
9answers
46k views

How do I get the raw private key from my Mist keystore file?

I use the Mist wallet. I would like to know: How I can get the private key of my account. How I can use this private key to sign messages.
29
votes
7answers
22k views

What are the differences between Bitcoin blockchain and Ethereum blockchain?

Ethereum has been debated in the bitcoin ecosystem and was criticized. In order to understand better both projects, what are the main differences between BTC and ETH regarding the blockchain ...
29
votes
3answers
25k views

How can I expose Geth's RPC server to external connections?

I want to set up a private network of applications which can connect to a single Geth node. What options do I have for exposing the RPC server? I'm running this: geth --rpc --testnet (sometimes I use ...
29
votes
2answers
13k views

'internal' keyword in a function definition in Solidity

Does the internal keyword in a function definition such as: function doSomeThing(uint _param) internal {...} work similar to designating a method as private in other languages and thus makes the ...
29
votes
4answers
12k views

How do I decrease the difficulty on a private testnet?

I've created a private test network. On the genesis.json file, I've changed the difficulty to 1. Yet, mining a block still takes hours on my CPU. I suspect that is due to some configuration related to ...
29
votes
7answers
46k views

Can't send transaction — “Exceeds block gas limit” or “Intrinsic gas too low”

I'm trying to send Ether using geth 1.3.5, like this: eth.sendTransaction({ from: eth.accounts[0], to:'0x[ADDRESS_HERE]', value: web3.toWei(5, "ether"), gas:21000 });` And I'm getting "...
29
votes
3answers
22k views

Error: account unlock with HTTP access is forbidden when unlock an account in Geth console

personal.unlockAccount(eth.accounts[0],"") Error: account unlock with HTTP access is forbidden I run Geth in a Docker container and use docker exec -it bootstrap geth --datadir=~/.ethereum/...
29
votes
9answers
54k views

How to get private key from account address and password?

What I have 1. I am able to create new account with personal.newAccount() method of web3 api. 2. I am working on my private blockchain. 3. geth node start with following command:- geth --datadir ~/...
29
votes
3answers
6k views

What is the distinction between libp2p, devp2p and RLPx?

What is the distinction between libp2p and devp2p? Do they refer to the same thing? How are they related to RLPx? In the libp2p whitepaper, dated Nov 2014, they appear to be the same thing: libp2p ...
29
votes
5answers
10k views

How can I sign a piece of data with the private key of an Ethereum address?

I would like to use the key pair of one of my Ethereum accounts to sign a piece of data. How can this be done?
29
votes
3answers
19k views

How can I make new account by JSON-RPC?

I'd like to make new account by JSON-RPC.I've checked the wiki of Ethereum, however I could not find out how to do that. I've found call existed accounts, but it isn't what I want. eth_accounts ...

15 30 50 per page