Code Monkey home page Code Monkey logo

wiki's Introduction

Wiki

🚫 no longer actively maintained 🚫

This wiki is a now a largely outdated collection of resources explaining the state-of-the-art in Ethereum circa 2014-2018.

Most of the material in this repository has been updated and migrated to ethereum.org.

This repository is due to be archived shortly. Please visit ethereum.org instead for current Ethereum information!

Looking to contribute to Ethereum documentation? Check out the ethereum.org repo: https://github.com/ethereum/ethereum-org-website

wiki's People

Contributors

aeronbuchanan avatar btceth avatar chriseth avatar cjentzsch avatar debris avatar ethb100 avatar etherkorea avatar ethers avatar frozeman avatar gavofyork avatar ghasshee avatar heikoheiko avatar jamesray1 avatar jorisbontje avatar lefterisjp avatar lianahus avatar obscuren avatar pedrosoftz avatar pirapira avatar ryoumh avatar shin1hi avatar stephantual avatar subtly avatar tgerring avatar tomoaki12345 avatar vbuterin avatar worker-ger avatar xcthulhu avatar yann300 avatar zelig avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wiki's Issues

Clarification on "bytes, bytes1 ... bytes32" in Solidity tutorial

Under elementary types, there's a paragraph...

"int• / uint•: Signed and unsigned integers of various sizes. Keywords uint8 to uint256 in steps of 8 (unsigned of 8 up to 256 bits) and int8 to int256. uint and int are aliases for uint256 and int256, respectively."

... which is very clear. A little lower, there's another...

"byte, bytes1, ..., bytes32: Fixed-size byte arrays, byte is an alias for bytes1."

... which is not as clear. At first and until I actually tested it, I assumed it would go "byte/byte1, byte8, byte16..." but that's not the case. Should this be changed to:

"byte, bytes1, bytes2, bytes3, ..., bytes32: Fixed-size byte arrays, byte is an alias for bytes1."

S' instead of S?

Hi, I am reading the White Paper and under section "Bitcoin As A State Transition System"

In sentence "Return S with all input UTXO removed and all output UTXO added." , would it be S' (S prime) instead of S?

rpc getblockbynumber 'pending' number is not null

curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["pending", true],"id":1}' http://127.0.0.1:8545
{"id":1,"jsonrpc":"2.0","result":{"number":"0x286fc","hash":"0x45a4f03599572f3cb461b069f00c0542c928990062781f8a6c2d78c033a5cb31","parentHash":"0x85b04af1a9662d68eacd41f6d47a236427eb4ada494aa984fa9a9f2fc382c27a"

In documentation you inform number is null .
The documentation is true ? And you can change return null in future ?
Or you are need update documentation ?

'Access-Control-Allow-Origin' error, DAPP Using Meteor page

I followed the instructions but when I run the javascript console on the Meteor site on localhost:3000, I got an error message below.

'“XMLHttpRequest cannot load http://localhost:8545/. Response to preflight request doesn't pass access >control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin >'http://localhost:3000' is therefore not allowed access.”'

I chanaged the command
$ geth --rpc --rpccorsdomain “http://localhost:3000
to
$ geth --rpc --rpcaddr="localhost" --rpcport="8545" --rpccorsdomain="http://localhost:3000"
and > web3.eth.accountsshows the accounts in the network successfully.

Should we modify it, if this is replicable for others too?

Subcurrency Example Contract Name

It appears that the name "Coin" is invalid for a new contract. So in the Subcurrency Example on the Wiki this should be changed to something else.

format of deployment.js

Hi,

when I am deploying my contracts, in the deployment.js, there are many line breaks missing.
it would definitively help, if we could get a line break between these pieces:
ctrAddresses["Contract1"].push("0x816328ca6d022cc526ca815e51247715c2fa333b") contracts["Contract2"] = {....

Improve the Wiki

The github wiki can actually serve as a decent wiki if we improve it a bit for better accessibility.

  • create a proper start page, which
    • gives orientation
    • invites user to edit
    • links the github wiki help pages
    • explains how to check out the wiki locally
  • cleanup the sidebar to list english pages only
  • use the footer to link other languages
  • interlink wiki pages where appropriate
  • promote the wiki by linking it from ethereum.org

Mix "Edit Starting Parameters" not working properly

Adding user accounts does not work properly. After saving and then returning "shuffles" the account information. Perhaps it is because I define/use the same account information inside the solidity contract?

TypeError: send() got an unexpected keyword argument 'funid'

Hi,

I'm trying to step through the tutorial at https://github.com/ethereum/wiki/wiki/Serpent and there are errors when running the following line:

s.send(t.k0, c, 0, funid=0, abi=[42])

TypeError: send() got an unexpected keyword argument 'funid'

Setup is as follows:

Name: ethereum-serpent
Version: 1.7.7
Location: /usr/local/lib/python2.7/dist-packages

Name: pyethereum
Version: 0.6.42
Location: /usr/local/lib/python2.7/dist-packages

Please let me know if there is a solution or if you need any more info.

[BUG] Browser Solidity compiler crashes on two devs computers.

The browser Solidity compiler crashes when running on Chrome through two different computers. I'm on Windows 10 and my coworker is on Linux. The code in question is as follows.

contract c
{
    function test() public returns(uint8)
    {
        uint8[] testing;
        testing[testing.length++] = 1;
        testing[testing.length++] = 2;
        testing[testing.length++] = 3;

        delete testing[1];

        uint8[] testing1;
        for (uint8 i = 0; i < testing.length; i++) {
            if (0 != testing[i]) {
                testing1[testing1.length++] = testing[i];
            }
        }

        return testing1[0];
    }
}

Steps to reproduce

  1. Create the contract.
  2. Click the "test" button to run the code.
  3. Watch the tab in Chrome crash after hanging for a bit.

Let's be explicit about accuracy and timeliness of information

The information in the wiki can be of different timeliness. Pages my describe the current protocol, ideas, former protocols, etc.

It would be good to have a banner on top of every page describing the relevancy (protocol / work in progress / idea) and up-to-dateness.

JSON-RPC serve examples don't work

I am always getting one of these 2 errors below no matter which RPC function i try.
What am i doing wrong?

root@58fe424912ee:/# geth --datadir /tmp/eth/42 --port 30303 --password <(echo -n notsosecret) --unlock 0 --rpcport 8545 &

[ec2-user@ip-172-31-38-111 download]$ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":1}' http://127.0.0.1:8545
curl: (56) Recv failure: Connection reset by peer

[ec2-user@ip-172-31-38-111 bank.js]$ curl -X POST --data '{"jsonrpc":"2.0","method":"net_version","params":[],"id":1}' http://127.0.0.1:8545
curl: (52) Empty reply from server

Request: pretty strings for balances

95000000000000000000 wei is pretty ugly. So is .00000000004 ether. It would be nice to get a utility function to automatically give the right string for a certain number of significant digits.

Improve Solidity standard lib (and docs).

https://github.com/ethereum/wiki/wiki/Solidity-standard-library

owned and mortal is still the only things under contracts, and mortal (which extends owned) does not use the modifier that owned provides.

Under PoC there are loads of interface contracts which does not use ; but empty bodies, so guessing they haven't been updated since that was enabled.

Leading characters in contract names are sometimes upper-case, sometimes lower-case. No convention.

Also some of it doesn't compile since it uses old types like string3.

Table in paragraph "Currency And Issuance" is confusing

Hey,

It took me a while to understand the table describing the currency allocation. I propose two changes for clarity:

"Reserve spent pre-sale" could be renamed to "Early contributors compensation and pre-sale expenses" (if the currency has not been launched there can be no reserve in such currency).
"Reserve used post-sale" could be renamed to "Reserve" as by definition a reserve is not used ("Reserve to be used post-sale" is a viable but verbose alternative).

Also mixing currency units and percentages without a clear separation is a little bit unclear.

Keep the good work!

Using Etherium for a Marriage Contract

In February I am getting married, so naturally I am wondering whether Etherium/Mist will ever be the kind of platform that will support marriage contracts?

If so, what would would that look like?

If not, why not?

bytes parameter bug

I see strange behavior when I try to execute some test contracts. I have made 2 test contracts,

contract TestContract1 {
        uint public n;
        uint public testValue1;
        bytes6 public value;

        function TestContract1(bytes6 val, uint[] testArray) {
                n = testArray.length;
                testValue1 = testArray[0];
                value = val;
        }
}

and

contract TestContract4 {
        uint public n;
        uint public testValue1;
        uint public value;

        function TestContract4(uint val, uint[] testArray) {
                n = testArray.length;
                testValue1 = testArray[0];
                value = val;
        }
}

These contracts are identical, except for the val, parameter, which is a uint in TestContract4 and bytes6 in TestContract1.

I execute contract #4 by the following code from geth:

var testContract = web3.eth.contract(abiArray);
var test = testContract.new(
   0x313131314141, [123,456], 
   {
     data:contractCode,
     from: eth.accounts[0],
     gas: 1000000
   }, function(e, contract){
    console.log(e, contract);
    if (typeof contract.address != 'undefined') {
         console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
    }
 });

and I look at the different variables stored in the contract, all values are correctly stored and retrieved (i.e. n = 2, testValue1 = 123, value = 54087348470081).

When I execute contract #1 with the same code from geth, I get a correct value = 0x313131314141, but n and testValue1 have strange values (n = 10696049115004928, testValue1 = 562949953421312).

Further tests show that when I change the bytes6 to bytes32 the contract works ok. Other lengths other than 32 seem to have the erroneous behavior.

It looks like a bug in Geth, since testing the contract in Solidity browser seems to work correctly.

The app does not show my created currency

Hi folks,

I would like to display my own crypto currency with this app. I created the currency contract with the desktop ethereum app and transferred this to my other accounts. In the webapp, I can however NOT see the currency on the accounts, even though I am specifically watching this coin.
Strangely enough, I do see the transactions in bottom, but not the balance...

How is this possible?

Does someone know what's going on?

kind regards

Run as daemin

Hello, how i can run several clients (wallets) as daemon ?

"Block gas limit reached"

https://github.com/ethereum/wiki/wiki/Mix:-The-DApp-IDE

when I create the Rating and setRating transactions and hit rebuild, it throws "block gas limit reached" without offering any helpful details.

typing 'titanic' which setRating transaction has set to 3 doesn't appear when typing in the text field. It returns 0 regardless.

I'm confused by the transaction cost as it is set to Auto after you click create new transaction. I've set it to 1 thinking that this was what it was complaining about but to no avail.

Unable to continue with the rest of the tutorial until I figure out why this is happening.

Mix Ide freezing on startup

WARNING: This project is using the experimental QML API extensions for QtWebEngi
ne and is therefore tied to a specific QtWebEngine release.
WARNING: The experimental API will change from version to version, or even be re
moved. You have been warned!

QtWebEngineProcess not found at location C:/Program Files/Ethereum/bin\QtWebEngi
neProcess.exe. Trying fallback path...
Layout must be attached to Item elements
Layout must be attached to Item elements
qml: [{"id":0,"jsonrpc":"2.0","method":"eth_accounts","params":[]}]
qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_client_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_client_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_server_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_server_method
qt.network.ssl: QSslSocket: cannot resolve SSL_select_next_proto
qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_next_proto_select_cb
qt.network.ssl: QSslSocket: cannot resolve SSL_get0_next_proto_negotiated
qml: [{"id":1,"jsonrpc":"2.0","method":"eth_gasPrice","params":[]}]
: QML QQuickLayoutAttached: Binding loop detected for property "pr
eferredWidth"
: QML QQuickLayoutAttached: Binding loop detected for property "pr
eferredWidth"
: QML QQuickLayoutAttached: Binding loop detected for property "pr
eferredWidth"
: QML QQuickLayoutAttached: Binding loop detected for property "pr
eferredWidth"
: QML QQuickLayoutAttached: Binding loop detected for property "pr
eferredWidth"
: QML QQuickLayoutAttached: Binding loop detected for property "pr
eferredWidth"
: QML QQuickLayoutAttached: Binding loop detected for property "pr
eferredWidth"
qrc:/QtQuick/Controls/ScrollView.qml:232:9: QML Binding: Binding loop detected f
or property "value"
qrc:/QtQuick/Controls/ScrollView.qml:225:9: QML Binding: Binding loop detected f
or property "value"
: QML QQuickLayoutAttached: Binding loop detected for property "pr
eferredWidth"
: QML QQuickLayoutAttached: Binding loop detected for property "pr
eferredWidth"
: QML QQuickLayoutAttached: Binding loop detected for property "pr
eferredWidth"
i 00:16:19.705|main Killing blockchain & extras database (WithExisting::Kill
).
i 00:16:19.705|main Killing state database (WithExisting::Kill).
qml: [{"id":1,"jsonrpc":"2.0","method":"eth_gasPrice","params":[]}]
qml: [{"id":0,"jsonrpc":"2.0","method":"eth_accounts","params":[]}]
qml: [{"id":1,"jsonrpc":"2.0","method":"eth_gasPrice","params":[]}]
i 00:16:19.751|main Killing blockchain & extras database (WithExisting::Kill
).
i 00:16:19.751|main Killing state database (WithExisting::Kill).
i 00:16:19.783|main Killing blockchain & extras database (WithExisting::Kill
).
i 00:16:19.798|main Killing state database (WithExisting::Kill).
qrc:///QtQuick/Controls/Private/ScrollBar.qml:98:46: Unable to assign [undefined
] to bool
qrc:///QtQuick/Controls/Private/ScrollBar.qml:98:46: Unable to assign [undefined
] to bool
qrc:/QtQuick/Controls/TextArea.qml:728:24: Unable to assign [undefined] to QColo
r
qrc:///QtQuick/Controls/Styles/Base/TextFieldStyle.qml:75: TypeError: Cannot rea
d property '__contentHeight' of null
qrc:///QtQuick/Controls/Styles/Base/TextFieldStyle.qml:75: TypeError: Cannot rea
d property '__contentHeight' of null
qrc:///QtQuick/Controls/Styles/Base/TextFieldStyle.qml:72:42: Unable to assign T
extArea_QMLTYPE_172 to TextField_QMLTYPE_97
qrc:///QtQuick/Controls/Private/ScrollBar.qml:95: TypeError: Cannot read propert
y of null
qrc:///QtQuick/Controls/Private/ScrollBar.qml:95: TypeError: Cannot read propert
y of null
qml: Unable to initiate request to the live network. Please verify your ethereum
node is up. Error status: 0
qml:
qml: Unable to initiate request to the live network. Please verify your ethereum
node is up. Error status: 0
qml:
qml: Unable to initiate request to the live network. Please verify your ethereum
node is up. Error status: 0
qml:
qml: Unable to initiate request to the live network. Please verify your ethereum
node is up. Error status: 0
qml:
qml: Unable to initiate request to the live network. Please verify your ethereum
node is up. Error status: 0
qml:
qml: Closing project
qml: Creating project dfg at file://C:/Users/admin/Desktop
qml: Closing project
qml: Loading project at file://C:/Users/admin/Desktop/dfg
i 00:16:44.007|main Killing blockchain & extras database (WithExisting::Kill
).
i 00:16:44.016|main Killing state database (WithExisting::Kill).
Waiting for current execution to complete
i 00:16:45.088| Decreasing DB node ref count below zero with no DB
node. Probably have a corrupt Trie. #84acdce9
i 00:16:45.104| Decreasing DB node ref count below zero with no DB
node. Probably have a corrupt Trie. #a71b164e

How to run Arm binary

I downloaded the pre built arm binary to run on Ubuntu Mate (Raspberry Pi 2). I ran chmod +x and then ./geth but get:

bash: ./geth: No such file or directory

What am I missing?

Error installing Mix IDE

I am getting the below error when trying to install the Mix IDE for Ethereum.
"No Such file or Directory". Appreciate your help in resolving the error.

When you exit this IRB session, execution will continue.
irb(/usr/local/Cellar/cpp-ethereum/1.2.3):001:0> exit
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:519:in `rename'
Errno::ENOENT: No such file or directory - (mix/Mix.app, /usr/local/Cellar/cpp-ethereum/1.2.3/Mix.app)

  1. raise
  2. ignore
  3. backtrace
  4. irb
  5. shell
    Choose an action: 3
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:519:inrename' /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:519:in block in mv'
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1558:inblock in fu_each_src_dest' /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1574:in fu_each_src_dest0'
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1556:infu_each_src_dest' /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:508:in mv'
    /usr/local/Library/Homebrew/extend/pathname.rb:106:ininstall_p' /usr/local/Library/Homebrew/extend/pathname.rb:84:in block in install'
    /usr/local/Library/Homebrew/extend/pathname.rb:65:ineach' /usr/local/Library/Homebrew/extend/pathname.rb:65:in install'
    /usr/local/Library/Taps/ethereum/homebrew-ethereum/cpp-ethereum.rb:83:ininstall' /usr/local/Library/Homebrew/debrew.rb:22:in block in install'
    /usr/local/Library/Homebrew/debrew.rb:97:indebrew' /usr/local/Library/Homebrew/debrew.rb:22:in install'
    /usr/local/Library/Homebrew/build.rb:130:inblock in install' /usr/local/Library/Homebrew/formula.rb:930:in block in brew'
    /usr/local/Library/Homebrew/formula.rb:1550:inblock in stage' /usr/local/Library/Homebrew/resource.rb:92:in block in unpack'
    /usr/local/Library/Homebrew/extend/fileutils.rb:36:inmktemp' /usr/local/Library/Homebrew/resource.rb:88:in unpack'
    /usr/local/Library/Homebrew/resource.rb:81:instage' /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/forwardable.rb:171:in stage'
    /usr/local/Library/Homebrew/formula.rb:1540:instage' /usr/local/Library/Homebrew/formula.rb:926:in brew'
    /usr/local/Library/Homebrew/build.rb:108:ininstall' /usr/local/Library/Homebrew/build.rb:177:in '
  6. raise
  7. ignore
  8. backtrace
  9. irb
  10. shell
    Choose an action:

web3.isConnected() is always true for IPC connections.

web3.isConnected() has issues. When connecting to an IPC node, it'll always return true, even if that node's IPC server isn't up and running. That causes issues with further calls failing with no easy way to check for a connection.

Steps to reproduce

  1. Launch Geth without any parameters so that it uses the default IPC path. (I'm on Windows, so mine is \.\pipe\geth.ipc)
  2. Very quickly run a program with the following Web3 code. You'll see that it says it's connected before it even starts the IPC server.
web3.setProvider(new web3.providers.IpcProvider('\\\\.\\pipe\\geth.ipc', require('net')));
if (true === web3.isConnected()) {
    alert('It returned true.');
}

unclear documentation

I intend to help the eth dev team with developer outreach and the one source for clear understanding is very unclear with several contradicting statements for example, in the commented section of this code sample in the wiki

https://github.com/ethereum/wiki/wiki/Solidity-Tutorial#contract-inheritance

"// Use "is" to derive from another contract. Derived contracts can access all members
// including private functions and state variables"

Then a complete 180 on the specs

https://github.com/ethereum/wiki/wiki/Solidity-Tutorial#visibility-specifiers

"private: Private functions and state variables are only visible for the contract they are defined in and not in derived contracts."

Which one is it? Obviously its the latter, but can you understand how confusing it would be to new developers who aren't rabid fans like we are? That and so many other tutorials written in a language that is unnecessarily complex, if you really want easier adoption...

It will be good to invest in a good technical writer for clearer, more straight forward documentation to facilitate new developer adoption. I understand you guys maybe overworked though. Keep up the good work anyways! Great job so far! understateably the best devs in the world

JS API web3.eth.filter documentation is inadequate.

I've read it several times now, and I still have no idea how to use an event filter (Events are explained in another page entirely, linked elsewhere.) or the difference between it and a log filter or which account address under options is supposed to refer to (The contract? The account that sent the transaction to start it?) The lower example is unclear. I've only understood it after several readings. Actually, filterString's documentation is incomplete anyway, because it doesn't say what comes out of the callback.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.