在百度超级链Xuper上部署智能合约并实现存证功能(1)

简介: 在百度超级链Xuper上部署智能合约并实现存证功能(1)

现实生活中的使用场景



几个摄影师朋友找到你,他们的摄影作品上传到自己的blog后总是被其他人盗用,使用水印之类的方法也无法避免像截取部分这种情况,他们需要一个能证明摄影作品最早是由自己上传、而且具有法律效力可供自己进行维权的工具
显然区块链对于解决此问题有很大的帮助,它的不可篡改等特性很适合存证维权的场景,我们可以通过XuperChain来构建一个存取证据的智能合约
下面就来帮助摄影师朋友开发一个能够存储照片版权、还能在发现被盗用后进行维权的智能合约


搭建xuper节点环境(多节点)


环境准备


  • go 1.12以上
  • git
  • g++4.8.2以上


git和g++之前已经安装好了,现在安装下go环境(接下来的a、b、c介绍的是通过mac安装go语言环境 如果非mac的小伙伴 可以跳过了)


通过brew安装go


brew install go


image.png


这样就安装好了,这里涉及到一个问题,
就是通过brew下载安装包速度的问题,
之前的文章也介绍过,这里再重复下,
以免朋友们在下载安装包这块浪费太多时间,
方法就是更换Homebrew源


a、替换brew.git


cd "$(brew --repo)"git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git


b、替换homebrew-core.git


cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git


c、echo $SHELL 看输出结果是/bin/zsh还是/bin/bash


c-1、 /bin/zsh替换homebrew-bottles**



echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.zshrcsource ~/.zshrc


c-2、/bin/bash替换homebrew-bottles


echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profilesource ~/.bash_profile


到此已经好了go语言环境 既然编译环境准备好了 下面咱们开始编译下xuperchain源码

let‘s go


下载源码


git clone https://gitee.com/pingfanrenbiji/xuperchain.git下载的是master分支 当前版本 v3.7


编译



进入源码目录
cd xuperchain
make
编译好之后 就会在output文件夹下面出现编译之后的文件
这里需要注意下 一定要安装master分支 不要安装老的分支 比如v3.1分支v3.1分支是pow共识 我一开始就用的这个版本的代码 节点是可以部署 但使用命令或通过sdk调用和链交互就会有出现问题 所以一定要用master分支哦


image.png


多节点配置


创建节点目录


mkdir pn1
mkdir pn2
mkdir pn3
将编译之后的所有文件copy到相应的节点目录
cp -r output/* pn1
cp -r output/* pn2
cp -r output/* pn3


节点1配置


  • 查看节点1地址


cat pn1/data/keys/address dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN
dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN


  • 将该地址配置到 pn1/data/config/xuper.json 里的address


cat pn1/data/config/xuper.json
{
    "version": "1",
    "predistribution": [
        {
            "address": "dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN",
            "quota": "100000000000000000000"
        }
    ],
    "maxblocksize": "128",
    "award": "1000000",
    "decimals": "8",
    "award_decay": {
        "height_gap": 31536000,
        "ratio": 1
    },
    "gas_price": {
        "cpu_rate": 1000,
        "mem_rate": 1000000,
        "disk_rate": 1,
        "xfee_rate": 1
    },
    "new_account_resource_amount": 1000,
    "genesis_consensus": {
        "name": "tdpos",
        "config": {
            "timestamp": "1559021720000000000",
            "proposer_num": "1",
            "period": "3000",
            "alternate_interval": "3000",
            "term_interval": "6000",
            "block_num": "20",
            "vote_unit_price": "1",
            "init_proposer": {
                "1": [
                    "dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN"
                ]
            },
            "init_proposer_neturl": {
                "1": [
                    "/ip4/127.0.0.1/tcp/47101/p2p/QmVxeNubpg1ZQjQT8W5yZC9fD7ZB1ViArwvyGUB53sqf8e"
                ]
            }
        }
    }
}



相关文章
|
3月前
|
存储 Kubernetes 容器
百度搜索:蓝易云【Kubernetes使用helm部署NFS Provisioner】
现在,你已经成功使用Helm部署了NFS Provisioner,并且可以在Kubernetes中创建使用NFS存储的PersistentVolumeClaim。
44 10
|
3月前
|
Kubernetes 应用服务中间件 nginx
百度搜索:蓝易云【使用Kubernetes部署Nginx应用教程】
现在,你已经成功在Kubernetes集群上部署了Nginx应用。通过访问Service的外部IP地址,你可以访问Nginx服务。
42 4
|
4月前
|
关系型数据库 MySQL 数据库
百度搜索:蓝易云【【Docker】Docker部署Mysql并设置数据持久化教程】
通过以上步骤,您已经成功地在Docker中部署了MySQL,并设置了数据持久化,确保数据在容器重新启动或迁移时得以保留。
51 0
|
4月前
|
Ubuntu Cloud Native 测试技术
百度搜索:蓝易云【云原生之使用Docker部署ubuntu测试环境】
请注意,以上步骤仅是简单的使用Docker部署Ubuntu测试环境的示例。在实际应用中,您可能需要根据测试需求和应用场景进行更多的配置和优化。同时,在退出容器时,容器并未删除,您可以使用 `docker rm <容器名称>`命令来删除容器。在进行测试时,请谨慎操作,并确保对Docker的使用有一定的了解,以避免不必要的问题。
41 2
|
4月前
|
存储 Cloud Native Docker
百度搜索:蓝易云【云原生之使用Docker部署Notepad个人任务管理工具】
这样,你就成功地使用Docker部署了Notepad个人任务管理工具。通过Docker部署Notepad可以使应用的安装和配置更加便捷,并且可以隔离应用环境,避免影响到宿主机的系统。希望以上教程对你有所帮助!如果你有其他问题,请随时继续提问。
56 0
|
2月前
|
人工智能 编解码 数据安全/隐私保护
才发现百度自带的AI图片助手这么好用,去水印、画质优化、AI扩图、涂抹消除等功能一应俱全!
才发现百度自带的AI图片助手这么好用,去水印、画质优化、AI扩图、涂抹消除等功能一应俱全!
210 0
|
2月前
|
自然语言处理 API 语音技术
Python加百度语音API实现文字转语音功能
Python加百度语音API实现文字转语音功能
55 0
|
3月前
|
Java Docker 容器
百度搜索:蓝易云【Docker使用之java项目工程的部署】
通过以上步骤,你已经成功在Docker中部署了Java项目工程。这样可以确保你的应用在不同环境中具有一致的运行结果,并且方便地进行部署和管理。
37 7
|
3月前
|
关系型数据库 MySQL 数据库连接
百度搜索:蓝易云【使用docker部署Wordpress教程】
这就是使用Docker部署WordPress的简洁步骤。祝你顺利完成部署!
50 5
|
4月前
|
安全 应用服务中间件 Linux
百度搜索:蓝易云【CentOS7使用Nginx、Supervisor部署Go/Golang服务教程】
这些是在CentOS 7 x64上使用Nginx和Supervisor部署Go/Golang服务的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
61 0