-
Sungchul Lee (Big Data and Block Chain Researcher)
Assistant Professor
Department of Computer Science
University of Wisconsin-Whitewater
lees at uww dot edu
-
Sungchul Lee
I was born in Seoul, Korea. I received my Ph.D. degree in computer science from the University of Nevada, Las Vegas (UNLV) in 2018. I was one of the members of the Nevada Energy-Water-Environment Nexus Project funded by NSF where I was conducting the data analysis and data security research. My research interests include big data analytics with Hadoop system, secure network protocol design, authentication and access control schemes, block chain and user behavior analysis in Smart Grid environment. I am also investigating navigation and collision avoidance algorithms for Aircraft Systems through simulations studies.I am also working on traumatic brain injury (TBI) research. I made a mobile health (mHealth) real-time system for collecting data from participants, and I have been analyzing the body balance of TBI.
Simple example of Smart Contract with Remix
Online IDE
https://remix.ethereum.org/
pragma solidity ^0.4.0; // like import library
contract unlvcontract{ // class name
string str="unlv contract";
//getting string
function getter() constant returns(string){
return str;
}
//setting test using
function setter(string newStr){
str=newStr;
}
}
The right side of online IDE
Using setter button, you can input data.
Getter button is to get the string in the contract.
Data Structure for Blockchain
This is simple implementation of blockchain to understand the data structure.
There are two data structures. One is the BlockHeader that contains the version, previous block hash, merkle root hash( Hash tree), timestamp, difficulty of prove and nounce. I will explain the variouable in the next post.
*/
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
public class BlockHeader {
private int version;
private byte[] previousBlockHash;
private int merkleRootHash;
private int timestamp;
private int difficultyProve;
private int nonce;
public BlockHeader(byte[] previousBlockHash, Object[] transactions){
this.previousBlockHash = previousBlockHash;
this.merkleRootHash=this.someMethod(transactions);
}
public byte[] toByteArray(){
String tmpStr="";
if(previousBlockHash != null){
tmpStr+=new String(previousBlockHash,0,previousBlockHash.length);
}
tmpStr +=merkleRootHash;
return tmpStr.getBytes(StandardCharsets.UTF_8);
}
private int someMethod(Object[] transations){
return Arrays.hashCode(transations);
}
}
Second data struture is block that contains the block size, block header and a information of transactions and number of transaction.
*/
/*
Main for test
Just making Hash using previous hash data.
*/






