Convert your DAO tokens back into ether

Here is a good explanation how to refund DAO tokens using geth, so you do not have to worry about latest mist version or post your key somewhere.

Make sure that you are running geth version 1.4.10 or later. And run your geth commands with the --support-dao-fork option so that you are on the hard-forked blockchain. By now the latest versions support hard-fork anyway. For example:
geth --support-dao-fork console

The --support-dao-fork setting is persisted between separate executions of geth, so you only have to specify this parameter once.

Confirm your geth version using
$ geth version
Version: 1.4.10-stable
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.5.1
OS: linux
geth --support-dao-fork --unlock {your account} console
Unlocking account {your account}
Passhrase: {enter your passphrase}

// Allow your blockchain to sync
> var account = "{your account}";
> var theDAOAddress = "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413";
> var theDAOWithdrawalAddress = "0xbf4ed7b27f1d666546e30d74d50d173d20bca754";
> var theDAOABIFragment = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"type":"function"}, {"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"type":"function"}];
> var theDAO = web3.eth.contract(theDAOABIFragment).at(theDAOAddress);
> var approve = theDAO.approve(theDAOWithdrawalAddress, theDAO.balanceOf(account), {from: account});
> eth.getTransaction(approve);

// Repeat the command above until you see that blockNumber is not null
// Wait a few blocks (~ 15 seconds each) for your approve transaction to get mined
> var theDAOWithdrawalABIFragment = [{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"type":"function"}];
> var theDAOWithdrawal = web3.eth.contract(theDAOWithdrawalABIFragment).at(theDAOWithdrawalAddress);
> var withdrawal = theDAOWithdrawal.withdraw({from: account});


Run a private Ethereum testnet / blockchain

Create a Genesis file, i. e. your first block of the private chain, in your home directory e. g.
"nonce": "0x0000000000000042",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x0",
"gasLimit": "0x8000000",
"difficulty": "0x400",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x3333333333333333333333333333333333333333",
"alloc": {

Point geth to the  Genesis file and start your private net
geth init /home/ether_testuser/.ethereum/CustomGenesis.json
geth --identity MyPrivateNet --port 50303 --nodiscover --maxpeers 1 --networkid 925345

Now you can connect with geth attach on a different console, create a new account and start mining to get some ether
> personal.newAccount()
> miner.start()

More details regarding the geth parameters

nodiscover Use this to make sure that your node is not discoverable by people who do not manually add you. Otherwise, there is a chance that your node may be inadvertently added to a stranger’s node if they have the same genesis file and network id.
maxpeers Use maxpeers 0 if you do not want anyone else connecting to your test chain. Alternatively, you can adjust this number if you know exactly how many peers you want connecting to your private chain.


A custom name and number to identify your test network.
port Use a different port than the geth standard port in order to run a test and production net in parallel.

Connect to the testnet with the following command (insert key, ip address and port of the testnet):

geth --bootnodes enode://pubkey1@ip1:port1

See geth --help for all options.

Read More

Democratic Autonomous Organizations

When it comes to organizing issues without a clear hierachy or structure, chaos is around the corner. People cannot just make things better. They need easy to unterstand and easy to handle tools to do so. And even then not any community can improve to the greater good easily.

The big question is how a soft transformation can take place to achieve more privacy, security, democracy and usability in a digital future.

Read more: