文章目录
前言
点对点,去中心化,分布式账本技术近几年越来越受到人们的关注,以下从业务和代码展开论述. 基于wordpress、woocommerce、kafka、frp区块链电商系统(点对点、去中心化、分布式账本)一、点对点去中心化分布式账本是什么?
1、在一个系统中分布着许多节点,每个节点都具有高度自治的特征。
2、节点之间彼此可以自由连接。
3、任何一个节点都可能成为阶段性的中心,但不具备强制性的中心控制功能。
4、区块链(BlockChain)是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。该技术方案主要让参与系统中的任意多个节点,通过一串使用密码学方法相关联产生的数据块(block),每个数据块中包含了一定时间内的系统全部信息交流数据,并且生成数据指纹用于验证其信息的有效性和链接(chain)下一个数据库块。
通俗一点说,区块链技术就指一种全民参与记账的方式。所有的系统背后都有一个数据库,也就是一个大账本。那么谁来记这个账本就变得很重要。目前就是谁的系统谁来记账,各个银行的账本就是各个银行在记,支付宝的账本就是阿里在记。但现在区块链系统中,系统中的每个人都可以有机会参与记账。在一定时间段内如果有新的交易数据变化,系统中每个人都可以来进行记账,系统会评判这段时间内记账最快最好的人,将其记录的内容写到账本,并将这段时间内账本内容发给系统内所有的其他人进行备份。这样系统中的每个人都了一本完整的账本。因此,这些数据就会变得非常安全。篡改者需要同时修改超过半数的系统节点数据才能真正的篡改数据。这种篡改的代价极高,导致几乎不可能。
5、分布式账本也称为共享账本,是一种可在网络成员之间共享、复制和同步的数据库。分布式账本记录网络参与者之间的交易,比如资产或数据的交换。该技术可以移除当前市场基础设施中的效率极低和成本高昂的部分,通过广泛的应用场景去提高生产力。
二、使用步骤
1.windows安装包下载
地址:
http://download.thelordismylight.hxkj.host:8090/哈希记账小工具.zip
2.解压
解压后文件如下
3.点击setup.exe安装
安装完成后点击桌面快捷方式
系统初始化
程序安装正常屏幕右下角出现该图标
双击该图标
点击打开首页
点击发布内容登录 wordpress 默认用户名web03 密码 123456
默认用户名web03 密码 123456
登录后页面
这里大家在百度上搜索wordpress发布内容相关文章,可以发布出自己想要的内容页面。
wordpress发布内容页面
url地址为外网映射地址,由于大部分家庭没有公网ip需要映射到公网.
点击发布商品跳转到以下页面,这里大家可以在百度上搜索WooCommerce相关内容,发布自己的产品信息。
WooCommerce发布商品页面,方便用户添加商品
点击添加搜索
该页面添加的内容为了方便点对点分布式系统中其他用户看到,标题和详细内容添加代表性关键字
点击帮助跳转到帮助页面
登录wordpress页面后
点击顶端查看商店
跳转到商店页面
点击查看购物车
点击去结算
点击下单
点击区块链公共账本添加凭据
甲方和乙方添加交易凭据,交易信息计入公共账本,公共账本分发到所有分布式系统中的在线用户
点击达成协议聊天
简单点对点聊天界面
4.ubuntu linux下安装步骤
openjdk安装
sudo apt-get install oracle-java11-installer-local
zookeeper安装
wget http://mirror-hk.koddos.net/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz
tar zxvf apache-zookeeper-3.5.5-bin.tar.gz
mv apache-zookeeper-3.5.5-bin zookeeper
kafka安装
wget http://mirrors.shuosc.org/apache/kafka/1.0.0/kafka_2.11-1.0.0.tgz
tar -zxvf kafka_2.11-1.0.0.tgz
进入kafka解压目录,修改kafka-server 的配置文件
vim config/server.properties
修改配置文件中21、31、36和60行
broker.id=1
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://host_ip:9092
log.dirs=/home/wzj/kafka/logs-1
启动Zookeeper
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
启动Kafka服务,使用 kafka-server-start.sh 启动 kafka 服务
bin/kafka-server-start.sh config/server.properties
使用 kafka-topics.sh 创建单分区单副本的 topic p2p
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic p2p
查看Topic消息
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic p2p
apache安装
sudo apt-get update
sudo apt-get install apache2
frp安装
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
tar -xzvf frp_0.33.0_linux_amd64.tar.gz
frps.ini
[common]
bind_port = 7000
vhost_http_port = 8011
subdomain_host = knowledge0603.fun
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
[ssh]
listen_port = 6000
auth_token = 123456
frpc.ini
[common]
server_addr = 120.53.240.110
server_port = 7000
auth_token = 123456
vhost_http_port = 8011
[web_search_5]
type = http
local_ip = 127.0.0.1
local_port = 9093
subdomain = app5
写区块安装包下载
5.源码地址
1、winform 打包 工具 https://gitee.com/grj111/winform-install-service
2、检索页凭据上传模块 https://gitee.com/grj111/sbfu
3、frp通道开启模块 https://gitee.com/grj111/frp
4、windows 端 发消息接收消息模块 https://gitee.com/grj111/keyword
5、linux 写区块打包区块模块 https://gitee.com/grj111/new_merkle_tree
6.部分代码说明
wordpress 短代码 使得订单和凭据挂接起来
/**
* add by grj 20210223
* add short code
*
*
*
*/
function hello() {
$url = "";
$con=mysqli_connect('localhost','root','123456','db_9002',3306);
$sql="SELECT constant_value FROM p2p_constant where constant_name='evidence_download_url'";
if ($result=mysqli_query($con,$sql))
{
while ($row=mysqli_fetch_row($result))
{
$url = $row[0];
}
mysqli_free_result($result);
}
mysqli_close($con);
?>
<script>
function GetQueryString(url)
{
var subUrl = window.location.toString();
var subUrlSplit = subUrl.split("checkout");
//新建页面打开
window.open("http://"+url+"?"+"checkout"+subUrlSplit[1]);
//本页打开
//window.location.assign("http://"+url+"?"+sub_2[1]);
}
</script>
<?php
$txt = "<div style='width: 370px;height:50px;'>";
$txt .="<a href=' javascript:void(0)' οnclick=\"GetQueryString('";
$txt .=$url;
$txt .="')\" >区块链公共账本添加凭据</a>";
$txt .="</div>";
return $txt;
}
add_shortcode('hw', 'hello');
7.公网IP申请与frp通道
联系运营商开通家庭公网ip。
打开路由器首页192.168.1.1 设置 upnp为开启状态。
无法申请公网ip,利用frp通道应用映射外网服务,这种方法速度慢,需要他人提供外网流量服务。
8.微信联系
三、总结
正在完善中…