by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Jeffrey Wilcke
@obscuren
@rfikki yes. It considers the first address coinbase. The way Linux and Windows deems "first" probably depends on the fs. Much of this has changed in 1.4
Rocky Fikki
@rfikki
So both keystore directories are the same for me, but on my windows machine the coinbase is not listed as an account in geth at all. Now I do notice that my coinbase has its own subdirectory in keystore while the other accounts do not. Is this normal behaviour?
Rocky Fikki
@rfikki
Yes, something has definitely changed. Strange thing is I am using the 1.4 version on both machines but on my windows machine I do not see that account as part of the list of accounts in geth. Both machines have the same keystore.
elegantcube
@elegantcube
hey, just wanted to understand where on my machine (folder location probably) does the smart contract i deployed reside ?
Sammy Libre
@sammy007
I believe it's stored on a thousands of machines now :p
elegantcube
@elegantcube
i understand, i am running a private test net , i just deployed a contract, just wondering in which folder is my contract residing at all
Péter Szilágyi
@karalabe
it's part of the blockchain state trie
~/.ethereum/chaindata
it's not a flat file, rather an internal node in a gigantic merkle-patritia trie data structure
elegantcube
@elegantcube
in windows machine is it 'C:\Users\username\AppData\Roaming\Ethereum\chaindata' location by any chance ? i see lot of .ldb files
Péter Szilágyi
@karalabe
yup
elegantcube
@elegantcube
is there a way to read these files
how is this different from blocks (or transactions data)
who creates address of smart contract ?
Where do address of smart contract is stored ?
Péter Szilágyi
@karalabe
the only meaningful way is to use the Geth codebase as a library and write an arbitrary tool to fetch the data for yourself. It's not too hard, but you do need to know how to develop Go code and have at least some understanding of the Geth code. The database structure contents is organized in completely custom schemas and even changes from time to time.
The address of a contract is the Keccak256 hash of <creator address> || <transaction nonce>
it's part of the protocol, noone creates it, rather everyone agrees what it will be based on the transaction contents
a smart contract doesn't have an address... rather an address may have code associated with it
the code is stored inside the database with other stuff belonging to the account (e.g. balance, nonce, data storage)
Péter Szilágyi
@karalabe
if you're really interested in the gory details, the state database is a merkle-particia trie. Essentially a key-value datastore based on fancy hashes. To retrieve the code of a specific account you'd need to first retrieve the account associated with a particular address and then retrieve the code associated with that account.
Sammy Libre
@sammy007
Testnet block explorer is what eth is missing
Péter Szilágyi
@karalabe
Sammy Libre
@sammy007
oh
Péter Szilágyi
@karalabe
@elegantcube
package main

import (
    "fmt"

    "github.com/ethereum/go-ethereum/common"
    "github.com/ethereum/go-ethereum/core"
    "github.com/ethereum/go-ethereum/ethdb"
    "github.com/ethereum/go-ethereum/event"
)

func main() {
    db, err := ethdb.NewLDBDatabase("/home/karalabe/.ethereum/chaindata", 0, 0)
    if err != nil {
        panic(err)
    }
    bc, err := core.NewBlockChain(db, nil, core.FakePow{}, new(event.TypeMux))
    if err != nil {
        panic(err)
    }
    sdb, err := bc.State()
    if err != nil {
        panic(err)
    }
    code := sdb.GetCode(common.HexToAddress("0xf9214ca8e9ab8f906575bba4c1d8ba05a065cde1"))
    fmt.Printf("%x\n", code)
}
3660008037602060003660003473273930d21e01ee25e4c219b63259d214872220a261235a5a03f21560015760206000f3
Same as reported by
elegantcube
@elegantcube
@karalabe thanks man, thats great detail
elegantcube
@elegantcube
what does mapping(address => mapping(address => uint256)) allowed; mean
This message was deleted
@elegantcube is it that address1 is referring to address 2, which inturn is carrying a value-allowed?
Nick Johnson
@Arachnid
@elegantcube It's a mapping from pairs of addresses to uints
allowed[from][to] is a uint
anodirium
@anodirium
hey guys
anyone here?
Stephen
@stephenstroud
hi
anodirium
@anodirium
hey im a bit new to all this
any chance you can give me a bit of guidance? ))
Stephen
@stephenstroud
anyone had the issue where the miner isn't submitting data?
@anodirium hey I just setup myself
@anodirium can try to help too
anodirium
@anodirium
im trying to start etehrium wallet and application starts but just blank
any clues?
no interface like nothing
it says starting etherium node
and then nothing
Stephen
@stephenstroud
nah I haven't been using the wallet, just the command like
anodirium
@anodirium
what am i doing wrong
Stephen
@stephenstroud
what OS you on?