# gjCoin **Repository Path**: laotou99_admin/gjCoin ## Basic Information - **Project Name**: gjCoin - **Description**: 因最近都在研究区块链的项目,所以想做个开源的区块链项目练练手。 - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-06-03 - **Last Updated**: 2025-08-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # gjCoin 骑牛币 #### 概述 一个区块链的网站,通过输入内网穿透的TCP地址,接入网站。 通过区块链,可以进行币的交易,通过TCP的连接,登入网站可以进行挖矿。 #### 网站设计 做一个单页面网站,在网站首页上方,显示网站规则,并显示标题。 下方做一个列表,显示已经连接上的矿池服务器,可以点击服务器进行挖矿,或是进行货币交易。 列表中,显示已经连接上的矿池。 对应的矿池后有两个按钮,一个为挖矿,一个为交易。 挖矿按钮,点击后弹出一个挖矿界面,通过定时,和AJAX技术,时时告知挖到的矿,和现在总有的币是多少。 交易按钮,点击后弹出一个交易界面,输入对方的钱包地址,输入交易金额,在页面的右上角显示你当前的剩余金额。 服务器列表,下方有个简单的技术说明。 ~~~bash +-----------------------------------------------------------------登入/查看--- | 这是个区块链技术网站,实现了一个区块链的挖币和交易的网站 | | 点击登入,获取一个钱包地址/下列服务器点击进行挖矿/在服务器上可以交易货币 | +---------------------------------------------------------------------------- ============================================================================= +--服务器列表----------------------------------------------------------------- | 序号 名称 地址 速率 发布日期 连接数 总币数 挖矿 交易 | 1。 AAA XXX 12 2022-10-10 11 22W 点击 点击 | 2。 BBB XYX 11 2023-01-22 22 33W 点击 点击 | | | +---------------------------------------------------------------------------- ============================================================================= +--操作说明------------------------------------------------------------------- | 本项目使用JS代码实现一个简单的区块链项目,通过动态节点的方式发布矿池。在此页面上, | 通过读取主节点地址,获取最近的动态节点,将读取到的节点在服务器列表上显示。 | 点击服务器中的挖矿,输入你的钱包地址,每15分钟,统计此计算结果,分发奖励的币。 | 点击服务器中的交易,则可以在此服务器上进行交易,输入对方的钱包地址,和要交易的币数 | 登入后,点击查看可以查看此钱包的币数。 +---------------------------------------------------------------------------- ~~~ 大致像这个 ![](.\pppp\rbnb1.png) ## 项目介绍 根据之前做过的一个项目,之前在另一个平台上发布过一个仅使用前段技术的区块链网站。 因没有后台技术,所以此前的项目,只能作为一个前台演示的项目。 然后此项目,本是个使用JAVA做的一个简单实现P2P的区块链演示项目,并且此项目没有完整的实例代码,只有点测试代码。 所以此次会将代码补全,后端用来存储区块链数据,和用户信息的数据,并且向前台发布HASH值。 HASH值由在线的前台轮流生成。 通过后台发布到各个挖矿的前台。 发布HASH值,并且随机固定长度。 详细流程为 前端 1,客户端连接服务器,调取登入接口 2,客户端的前段自动生成钱包地址,或是用户主动输入一个钱包地址。 3,前段客户端,发送钱包地址给服务器端,获取当前的区块链。 4,当点击挖矿按钮后,前去客户端生成随机HASH值和随机长度,发送给服务器端。 5,从服务器端获取此次计算的HASH值和长度,和批次ID。 6,客户端开始技术,并且记录计算时长,等待计算完毕。 7,当计算完毕后,将HASH值和长度和批次ID还有计算时长,都发送给服务器。 8,服务器会返回你是否挖掘成功,如超时,返回不成功,否则返回获取的币数值 9,还有返回最新的区块链,将其加入到现有区块链当中。 后端 1,启动服务器端应用,初始化数据或读取现有数据。 2,等待前端连接,将最新的区块链集发送给前端。 3,发送最新HASH值和长度,和批次ID推送给,所有连接的并点击挖币的前端。 4,接受前段发送来的HASH值和长度,和批次ID,和计算时长。 5,根据前段发送过来的数据,匹配批次ID和开始时间,如没有超时,计入可发队列。 6,根据可发队列中的排名,按比例分配币值数额。 7,将新的区块链,写入区块链当中,并存入数据库中。 8,将新的区块链,发送给所有的前端页面,并让前端显示。 其他细节,在后端始终会有两个钱包地址,默认地址,会一直交易10元,来确保,每次有交易产生。 -废- 1. 因最近都在研究区块链的项目,所以想做个开源的区块链项目练练手。 2. 主要还是采用区块链的基础理念。 3. 网络连接,既挖矿的部分,想采用WebService的方式,不知效果怎么样。 4. 另外,钱包的支付与认证,想采用Restful方式。用于数据的验证。 5. 使用H2作为本地数据库 ##### 采用两种连接方式 1. 一种为WebService的连接方式。 2. 一种为Restful的连接方式。 ### 程序逻辑 程序使用jetty作为web容器,后台主要用来存储数据,如区块链和用户信息。 前台用来计算哈希值,并更具结果,获得币值。根据钱包地址存入。 #### 软件架构 软件架构说明 后端JAVA+H2DB 前段H5+JS+VUE #### 安装教程 暂无 1. xxxx 2. xxxx 3. xxxx #### 使用说明 暂无 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本项目 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [http://git.mydoc.io/](http://git.mydoc.io/) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)