ethereum Proper Transaction Signing nonce

https://ethereum.stackexchange.com/questions/12823/proper-transaction-signing const Web3 = require('web3'); const Tx = require('ethereumjs-tx'); const config = require('./config'); const web3 = new Web3(new Web3.providers.HttpProvider(config.provider)); //link provided by Infura.io web3.eth.defaultAccount = "0xc929c890f1398d5c1ecdf4f9ecec016906ac9f7f"; const getNonce = () => { return new Promise((resolve, reject) => { web3.eth.getTransactionCount(web3.eth.defaultAccount, (error, result) => { if(error) reject(error); resolve(web3.toHex(result)); }) }) } const getGasPrice = () => { return new Promise((resolve, reject) => { web3.eth.getGasPrice((error, result) => { if(error) reject(error); resolve(web3.toHex(result.toNumber())); }) }) } const sendRawTransaction = (rawTx) => { const privateKey = "190b820c2627f26fd1b973b72dcba78ff677ca4395c64a4a2d0f4ef8de36883c"; const tx = new Tx(rawTx); const privateKeyBuffer = Buffer.from(privateKey, 'hex'); tx.sign(privateKeyBuffer); const serializedTx = tx.serialize(); web3.eth.sendRawTransaction('0x' + serializedTx.toString('hex'), function(err, hash) { console.log('Error:', err); console.log('Hash:', hash); }); } Promise.all([getNonce(), getGasPrice()]) .then(values => { const rawTx = { to: '0x203D17B4a1725E001426b7Ab3193E6657b0dBcc6', gasLimit: web3.toHex(1000000), value: web3.toHex(web3.toWei('0.1', 'ether')), nonce: values[0], gasPrice: values[1] }; console.log(rawTx); return(rawTx); }) .then(sendRawTransaction) .catch(e => console.log(e))

2019-12-18 · 1 min · 136 words · Me

ring buffer

https://zhen.org/blog/ring-buffer-variable-length-low-latency-disruptor-style/ https://github.com/smartystreets-prototypes/go-disruptor

2019-12-18 · 1 min · 2 words · Me

ethereum transaction template

https://ethereum.stackexchange.com/questions/50042/why-does-sendsignedtransaction-return-a-tx-hash-but-does-not-post-to-the-rinkeby window.web3 = new Web3(new Web3.providers.HttpProvider(endpoint)); sendEther() { const fromAccount = **acct1**; const toAccount = **acct2**; const rawTransaction = this.makeRawTransaction(fromAccount, toAccount); const signedTransaction = this.makeSignedTransaction(rawTransaction); const serializedTransaction = `0x${signedTransaction.serialize().toString('hex')}`; window.web3.eth.sendSignedTransaction(serializedTransaction, (error, result) => { if(!error) { console.log(`Transaction hash is: ${result}`); this.setState({ etherscanUrl: `https://rinkeby.etherscan.io/tx/${result}`, error: null }); } else { this.setState({ error: error.message }) console.error(error); } }); } makeSignedTransaction(rawTransaction) { const privateKey = '**************'; const privateKeyX = new Buffer(privateKey, 'hex'); const transaction = new EthTx(rawTransaction); transaction.sign(privateKeyX); return transaction; } makeRawTransaction(fromAccount, toAccount) { const { exchangeRate } = this.props; const amount = (1 / exchangeRate) * 5; return ({ nonce: window.web3.utils.toHex(window.web3.eth.getTransactionCount(fromAccount)), to: toAccount, gasPrice: window.web3.utils.toHex(100000000000), gasLimit: window.web3.utils.toHex(100000), value: window.web3.utils.toHex(window.web3.utils.toWei(`${amount}`, 'ether')), data: '' }); }

2019-12-18 · 1 min · 112 words · Me

[轉]Windows、WSL 与 Linux 的性能对比

https://www.cnbeta.com/articles/tech/922349.htm 尽管执行了各种各样的测试,但是如果对在七个不同操作系统上成功运行的所有测试取几何平均值,可以得出这样的结论: Windows 10 Build 19008 的总体性能要比 Build 18362 版本好,而 WSL 的性能并没有太大变化 WSL2 比 WSL 的性能确实稍好一些,这是因为在 I/O 或网络活动繁重的工作负载的情况下前者性能要好得多 在这种特殊的 Core i9 7960X 场景下,运行 Ubuntu Linux 的速度总体上比最快的 Windows 配置快 27% 有兴趣的朋友可查看这份更详细的 OpenBenchmarking.org 结果文件,以深入研究这些 Windows / WSL / Linux 基准测试内容。

2019-12-17 · 1 min · 38 words · Me

geth attach

geth --exec "eth.blockNumber" attach --datadir ./ geth --exec "eth.syncing" attach --datadir ./ geth --exec "admin.peers" attach --datadir ./ geth --exec "clique.getSnapshot()" attach --datadir ./ watch -n 2 'geth --exec "clique.getSnapshot()" attach --datadir ./'

2019-12-17 · 1 min · 33 words · Me