/ViolationSystem

Ethernum ViolationSystem

Primary LanguageJava

写在前面

项目开发于2017年10月。年代比较久远了,运行时请注意合约与web3j的版本问题。

如果你对以太坊的部署不了解的话 可以到李赫先生的博客先进行学习

[!url]http://blog.csdn.net/sportshark/article/details/52351415

部署中需要注意一些问题 首先是config.properties文件 其中需要将钱包地址更改为你自己的钱包地址 否则会报FileNotFound的错误

其次 合约的部署需要在自己的电脑上进行部署(注意先启动挖矿(geth)才能部署) 不能直接用我的合约地址 也不能直接在https://remix.ethereum.org/ 上面部署

否则会出现空指针的错误 可以先在MainTest文件中进行调试 项目运行全程都必须进行挖矿来达成共识

项目中的注册页面里面的凭证其实就是你的钱包地址 是一串十六进制的字符串 可以在你的ethereum钱包客户端中copy Address来获得 较好的方式是写成文件上传 直接上传钱包文件 但由于笔者开发时间较紧 没有实现这个功能

笔者写这个项目的时间只有两天 所以一些细节并没有很好的完善 注册和写入违法记录进入区块链的等待时间可以会久一些 这是因为区块链自身的局限性 请耐心等待 项目只是初版 功能较为简单 仅用于学习 主要的开发框架是通过继承web3j的Contract 然后再使用java调用合约中的函数 项目中所有调用方法都写成同步调用 没有使用异步 使用异步响应速度会快一些 日后会再做更新

1.开发环境:

(1)Intellij Idea 2017

(2)Geth1.7.3

(3)Ethereum0.9.3

(4)Ubuntu16.04

2.准备工作

(1)安装Ethereum钱包

https://www.ethereum.org/

(2) geth安装

Ubuntu用户可以选择在线安装的方式,在终端中依次执行以下命令即可:


sudo add-apt-repository -y ppa:ethereum/ethereum

sudo apt-get update

sudo apt-get install ethereum

安装完成后执行 geth help 查看geth的用法。

windows用户直接到官网下载就行

3.初始化以太坊

(1)创建工作目录

(2)在工作目录下配置创世快 genesis.json

(3)初始化创世块

geth init genesis.json

(4)启动以太坊

geth --rpc --rpcapi personal,db,eth,net,web3 --networkid 666666 console

(5)创建钱包 两种方式 一种是在ethereum图形界面中创建 一种是通过geth执行 personal.newAccount()创建

(6)开始挖矿

miner.start(1) //启用一个线程挖矿 否则是多线程

Image text

(7)停止挖矿

4.部署合约

(1)合约编写IDE https://remix.ethereum.org/

Image text

(2)将编写完的合约在以太坊钱包中发布(Deploy)

Image text

5.java开发

使用maven管理 利用web3j库进行开发

<dependency>
      <groupId>org.web3j</groupId>
      <artifactId>core</artifactId>
      <version>3.2.0</version>
</dependency>

6.项目演示

Image text

Image text

Image text

Image text

Image text

本项目仅为以太坊的开发学习项目,是我刚学java的时候写的,一些地方写得不漂亮还望谅解。