从零开始以太坊

Posted UserJoe123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始以太坊相关的知识,希望对你有一定的参考价值。

 node index.js

var http = require("http");

var url = require('url');

const  exit  = require("process");

var events = require('events');

var Web3 = require('web3');

var web3 = new Web3(Web3.givenProvider || 'http://localhost:8545');

var helloworldContract = new web3.eth.Contract(["inputs":[],"stateMutability":"nonpayable","type":"constructor","inputs":[],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function","inputs":[],"name":"get","outputs":["internalType":"uint8","name":"","type":"uint8"],"stateMutability":"view","type":"function"]);



// 创建 eventEmitter 对象 

var eventEmitter = new events.EventEmitter();



// route 根路径 

eventEmitter.on('/', function(method, response)

    response.writeHead(200, 'Content-Type': 'text/plain');

    web3.eth.getAccounts().then(function(accounts)

      response.end('Hello World' + accounts[0]);

    );

    

);



// route 404 

eventEmitter.on('/404', function(method, url, response)

    response.writeHead(404, 'Content-Type': 'text/plain');

    response.end('404 Not Found\\n');

);



eventEmitter.on('/deploy', function(method, response)

    response.writeHead(200, 'Content-Type': 'text/plain');



    var helloworld = helloworldContract.deploy(

	     data: '0x608060405234801561001057600080fd5b5060036000806101000a81548160ff021916908360ff1602179055506101818061003b6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634f2be91f1461003b5780636d4ce63c14610045575b600080fd5b610043610063565b005b61004d610098565b60405161005a91906100ca565b60405180910390f35b600160008054906101000a900460ff1661007d9190610114565b6000806101000a81548160ff021916908360ff160217905550565b60008060009054906101000a900460ff16905090565b600060ff82169050919050565b6100c4816100ae565b82525050565b60006020820190506100df60008301846100bb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061011f826100ae565b915061012a836100ae565b92508260ff038211156101405761013f6100e5565b5b82820190509291505056fea2646970667358221220efdd61a5c70c486236943fe5fca65acd2ad62cdd7cacccaaf1bb108edf553d8f64736f6c634300080a0033', 

	     arguments: [

	     ]

	).send(

	     from: '0x3385c0257782Ab3139351ba067066A43D9CBfe4B', 

	     gas: '4700000'

	   , function (e, transactionHash)

	 ).on('receipt', function(receipt)

		response.write(receipt.blockNumber);

	);
    response.end('=====================END=====================\\n');
);


// route  
eventEmitter.on('/call', function(method, response)
	response.writeHead(200, 'Content-Type': 'text/plain');
	var MyContract = new web3.eth.Contract(["inputs":[],"stateMutability":"nonpayable","type":"constructor","inputs":[],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function","inputs":[],"name":"get","outputs":["internalType":"uint8","name":"","type":"uint8"],"stateMutability":"view","type":"function"],

'0x0850e3C5bFdF8e21e2FFB576fd42dF91f0C1032d'

);
	MyContract.methods.add().send(from: '0x3385c0257782Ab3139351ba067066A43D9CBfe4B')
	.then(function()
	    MyContract.methods.get().call(from: '0x3385c0257782Ab3139351ba067066A43D9CBfe4B')
		.then(function(result)
	    		console.log(result+'\\n');
		);
	);
	    response.end('call\\n');
);
// 启动服务 
http.createServer(function (request, response) 
    console.log(request.url);
   // 分发 
    if (eventEmitter.listenerCount(request.url) > 0)
        eventEmitter.emit(request.url, request.method, response);
    
    else 
        eventEmitter.emit('404', request.method, request.url, response);
    
).listen(8888);
console.log('Server running at http://127.0.0.1:8888/');

以上是关于从零开始以太坊的主要内容,如果未能解决你的问题,请参考以下文章

如何从零开始学习区块链技术——推荐从以太坊开发DApp开始

从零开发区块链应用--以太坊地址生成

从零开发区块链应用--以太坊余额查询

从零编出一个区块链:在以太坊发布一个智能合约

从零开发区块链应用(十四)--以太坊交易哈希查询

从零开发区块链应用(十三)--以太坊区块查询