I know basically zero about Ethereum, block chain etc. I have Augur reps. I have been asked to create an Ethereum address for the sale augur site. I don't have the slightest idea how to generate an address and or where to create an account for Ethereum. How to create an Ethereum address?
[Ethereum] How to create an Ethereum address
accountsaddresses
Related Solutions
If I understand your question correctly you want to be able to see who has deposited Eth to your contract address. This is what event logs are for.
(1) Create a contract where there is an event every time there is a transaction. e.g something like:
contract someContract {
address public owner;
// Set the owner of the contract to be the creator of the contract i.e. you
function someContract() {
owner = msg.sender;
}
// This is an event
event DepositMade(address _from, uint value);
event WithdrawalMade(address _to, uint value);
//Catch all function
function() {
// generate an event when someone sends you Eth
if (msg.value > 0)
DepositMade(msg.sender, msg.value);
}
// Only the owner of the site can withdraw Eth
modifier admin { if (msg.sender == owner) _ }
function withdraw(uint amount, address recipient) admin {
if(recipient.send(amount))
WithdrawalMade(msg.sender, msg.value);
else throw;
}
}
The important bits are defining an event type event DepositMade(address _from, uint value)
and generating an event when something happens DepositMade(msg.sender, msg.value);
these events are stored in the event log associated with the address of the deployed contract instance.
(2) You retrieve the events on this contract using rpc eth_newFilter
or web3.eth.filter
e.g something like:
var filter = web3.eth.filter({fromBlock:0, toBlock: 'latest', address: contractAddress, 'topics':['0x' + web3.sha3('DepositMade(hexstring,uint256)')]});
filter.watch(function(error, result) {
if(!error) console.log(result);
})
BouncyCastle KeccakDigest does seem to work : https://github.com/Nethereum/Nethereum/blob/master/src/Nethereum.Util/Sha3Keccack.cs
public byte[] CalculateHash(byte[] value)
{
var digest = new KeccakDigest(256);
var output = new byte[digest.GetDigestSize()];
digest.BlockUpdate(value, 0, value.Length);
digest.DoFinal(output, 0);
return output;
}
The complete process of generating an address can be understood by the code in https://github.com/Nethereum/Nethereum/blob/master/src/Nethereum.Signer/EthECKey.cs, especially
public string GetPublicAddress()
{
var initaddr = new Sha3Keccack().CalculateHash(GetPubKeyNoPrefix());
var addr = new byte[initaddr.Length - 12];
Array.Copy(initaddr, 12, addr, 0, initaddr.Length - 12);
return new AddressUtil().ConvertToChecksumAddress(addr.ToHex());
}
Best Answer
MetaMask was recently announced and will be faster than Mist (mentioned in other answer) since MetaMask is a Chrome extension and does not use a local copy of the blockchain.
This video is 3 minutes long, but you have all that you need to get an Ethereum address in the first minute:
https://www.youtube.com/watch?v=6Gf_kRE4MJU
Make sure to keep the 12 words secure and have backups of it. (Also switch to the "main network" if you want to send and receive real Ether.)
Finally, it would still be a good idea to read and familiarize yourself with the "Account Management" and other sections http://ethdocs.org.