EVA
所属分类:matlab编程
开发工具:matlab
文件大小:0KB
下载次数:6
上传日期:2022-08-31 20:39:00
上 传 者:
sh-1993
说明: EVA:使用区块链的公平和可审计电动汽车充电服务
(EVA: Fair and Auditable Electric Vehicle Charging Service using Blockchain)
文件列表:
LICENSE (11357, 2018-07-17)
evadmm/ (0, 2018-07-17)
evadmm/evadmm_ethereum_bridge.js (10423, 2018-07-17)
evadmm/evadmm_schedule.js (280, 2018-07-17)
evadmm/matlab/ (0, 2018-07-17)
evadmm/matlab/EvAdmmWebSocketServer.m (1709, 2018-07-17)
evadmm/matlab/StartEvAdmmServer.m (38, 2018-07-17)
evadmm/matlab/agr_params.mat (1355, 2018-07-17)
evadmm/matlab/evadmm.m (1331, 2018-07-17)
evadmm/matlab/matlabwebsocket/ (0, 2018-07-17)
evadmm/matlab/matlabwebsocket/WebSocketClient.m (5883, 2018-07-17)
evadmm/matlab/matlabwebsocket/WebSocketConnection.m (2796, 2018-07-17)
evadmm/matlab/matlabwebsocket/WebSocketServer.m (7722, 2018-07-17)
evadmm/matlab/matlabwebsocket/matlab-websocket-1.4.jar (119471, 2018-07-17)
evadmm/matlab/matlabwebsocket/src/ (0, 2018-07-17)
evadmm/matlab/matlabwebsocket/src/main/ (0, 2018-07-17)
evadmm/matlab/matlabwebsocket/src/main/java/ (0, 2018-07-17)
evadmm/matlab/matlabwebsocket/src/main/java/io/ (0, 2018-07-17)
evadmm/matlab/matlabwebsocket/src/main/java/io/github/ (0, 2018-07-17)
evadmm/matlab/matlabwebsocket/src/main/java/io/github/jebej/ (0, 2018-07-17)
evadmm/matlab/matlabwebsocket/src/main/java/io/github/jebej/matlabwebsocket/ (0, 2018-07-17)
evadmm/matlab/matlabwebsocket/src/main/java/io/github/jebej/matlabwebsocket/MatlabEvent.java (1184, 2018-07-17)
evadmm/matlab/matlabwebsocket/src/main/java/io/github/jebej/matlabwebsocket/MatlabListener.java (434, 2018-07-17)
evadmm/matlab/matlabwebsocket/src/main/java/io/github/jebej/matlabwebsocket/MatlabWebSocketClient.java (2727, 2018-07-17)
evadmm/matlab/matlabwebsocket/src/main/java/io/github/jebej/matlabwebsocket/MatlabWebSocketSSLClient.java (2129, 2018-07-17)
evadmm/matlab/matlabwebsocket/src/main/java/io/github/jebej/matlabwebsocket/MatlabWebSocketSSLServer.java (1588, 2018-07-17)
evadmm/matlab/matlabwebsocket/src/main/java/io/github/jebej/matlabwebsocket/MatlabWebSocketServer.java (5127, 2018-07-17)
evadmm/matlab/yalmip/ (0, 2018-07-17)
evadmm/matlab/yalmip/@sdpvar/ (0, 2018-07-17)
evadmm/matlab/yalmip/@sdpvar/abs.m (2681, 2018-07-17)
evadmm/matlab/yalmip/@sdpvar/accumarray.m (334, 2018-07-17)
evadmm/matlab/yalmip/@sdpvar/acos.m (419, 2018-07-17)
evadmm/matlab/yalmip/@sdpvar/acosh.m (716, 2018-07-17)
evadmm/matlab/yalmip/@sdpvar/acot.m (807, 2018-07-17)
evadmm/matlab/yalmip/@sdpvar/addfactors.m (2573, 2018-07-17)
evadmm/matlab/yalmip/@sdpvar/addgkyp.m (791, 2018-07-17)
evadmm/matlab/yalmip/@sdpvar/addleftfactor.m (456, 2018-07-17)
evadmm/matlab/yalmip/@sdpvar/addrightfactor.m (458, 2018-07-17)
... ...
# EVA: Fair and Auditable Electric Vehicle Charging Service using Blockchain
## Description
A prototypic implementation of EVA as part of my Master's Thesis.
Please find the publication here: [EVA: Fair and Auditable Electric Vehicle Charging Service using Blockchain](https://dl.acm.org/citation.cfm?id=3219776)
## Build Instructions
To build and run the prototype, you need Node.js, Matlab (with Optimization Toolbox) and an Infura API Key (https://infura.io)
### Smart Contract
* Put your Infura API Key at `` in `smart_contracts/truffle.js`
* cd into `smart_contracts` directory
* `npm install`
* `truffle compile`
* `truffle migrate --reset --network ropsten`
* Note the `address` where truffle deployed the contract and the ABI (in `smart_contracts/build/contracts/Aggregator.json`) for later
### EV ADMM
#### Pt. 1: Matlab
* Start Matlab
* Add MatlabWebSocket to Java Classpath
* Execute command `edit(fullfile(prefdir,'javaclasspath.txt'))`
* Add a new line with the path to `evadmm/matlab/matlabwebsocket/matlab-websocket-1.4.jar`
* Save and restart Matlab
* In Matlab, add the `evadmm/matlab` folder including all subfolders to the current Matlab path
* Run `StartEvAdmmServer.m`
#### Pt.2 Ethereum Bridge
* Put your Infura API Key at `` in `evadmm/evadmm_ethereum_bridge.js`
* Update the variables `aggregatorContractABI` and `aggregatorContract` in `evadmm/evadmm_ethereum_bridge.js` according to the results from compilation & deployment
* cd into `evadmm` directory
* `npm install`
* `node evadmm_schedule.js`
### Frontend
* Update the variables `aggregatorContractABI` and `aggregatorContract` in `frontend/index.js` according to the results from compilation & deployment
* cd into `frontend` directory
* `npm install http-server`
* `http-server`
* You can access the DApp using any DApp browser (e.g. MetaMask) on `http://localhost:8080` now
* Alternative: Deploy files on any webserver
## Evaluation
### Preparation
* Put your Infura API Key at `` in `evaluation/wallets.js`
* Modify `evaluation/wallets.js` with test wallet mnemonics to your liking
* Open a Node.js console, import the `wallets.js` module and fund your test wallets using the `fundWallets` function
### Experiment Design
* Create a file `experiment..js in `evaluation`
* Import the `simulation` module and override the `runExperiment` function with your designed experiment
* For examples, take a look at `evaluation/experiment.eva_luation.js`
### Running the Evaluation
* cd into `evaluation`
* `npm install`
* `node experiment..js -s ..csv`
近期下载者:
相关文件:
收藏者: