blockchain
Table of Contents
Blockchain
Links
General Notes
- Make sure the constructor of the contract has the correct access modifiers:
function MegaContract() public payable {
Security
To do anything that requires gas, either unlock the account beforehand with the password:
var address = "..."; var password = "..."; var web3 = new Web3(); var unlockAccountResult = await web3.Personal.UnlockAccount.SendRequestAsync(address, password, 120); Assert.IsTrue(unlockAccountResult);
Or use the private key to create the Web3 object:
var privateKey = "..."; var web3 = new Web3(new Account(privateKey));
Questions
- How to I get the result of calling an external function with Nethereum?
Tool Set Install
- Metamask Chrome extension.
- (Visual Studio Code)
- NodeJS
- [Admin PowerShell]
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
- Chocolately
- [Admin PowerShell]
choco install git -params "/GetAndUnixToolsOnPath"
- [Admin PowerShell]
git config --system http.sslverify false
- [Admin PowerShell]
npm install -g node-gyp
- [Admin PowerShell]
npm install --global --production windows-build-tools
- [Admin PowerShell]
npm install -g ethereumjs-testrpc
- [Admin PowerShell]
npm install -g truffle
Commands
truffle init | Set up project. |
testrpc | Start RPC. |
truffle.cmd comp | Compile everything. |
truffle.cmd migrate | Deploy everything. |
truffle.cmd console | Console mode (to interact with contract). |
[Truffle Console] var hw | Create a variable to reference our contract. |
[Truffle Console] HelloWorld.deployed().then(function(deployed){hw=deployed;}); | Get the reference (note that it is async). |
[Truffle Console] hw.SayHello.call() | Call a read-only method on the contract. |
[Truffle Console] hw.sendCoin('0x8...', 100) | Call a modifying method on the contract. |
[Truffle Console] .exit | Exit console mode. |
Implementations of Ethereum blockchange
Implementation | Language | Pruning | Notes |
---|---|---|---|
Geth | Go | Yes | |
Parity | Rust | Yes | |
EthereumJ | Java | Yes | |
Eth | C++ | No | Reference implementation is meant for developers only. |
PyEthApp | Python | No |
Glossary
ABI | Application Binary Interface. Is basically how you call functions in a contract and get data back. Like a WSDL or .h file in C. |
VS Code
Use the Solidity extension.
- F5 - Compilation of the current contract
- Ctrl + F5 - Compilation of all the contracts
Nethereum
Start with Nethereum.Web3.
Tutorial
Video is here.
- [VS Code] Write contract
- [VS Code] Compile contract
- [Command Line] Start Geth
- [VS] Create unit test project.
- [VS] NuGet install Nethereum.Web3 + dependencies.
Dev VM
Geth's encrypted accounts key store files can be found in %APPDATA%/Ethereum
.
Run Geth
- Open a separate DOS ConEmu.
- [ConEmu DOS] Run the command,
C:\Users\TallGuy-DevVm\Dev\Geth\startgeth.bat
- Open a separate Admin PowerShell ConEmu.
- [ConEmu PowerShell] Run the command,
(Get-Process geth).PriorityClass = "BelowNormal"
blockchain.txt · Last modified: 2017/12/01 01:19 by 127.0.0.1