区块链以太坊DApp高薪实战有感

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Prototype___/article/details/81582978

  区块链给我的感觉就是记账簿。在区块链系统中,每个人都可以来进行记账,系统会选择记账最快最好的人,把这个人所记录的内容写到账本,并将这账本内容发给系统内所有人备份。
  区块链领域的高技术性含量和极度稀缺性在从业者薪资上得到反映,区块链从业者平均年薪达34.09万元,超过AI人工智能领域平均年薪,居薪酬排行榜首位。在2018年区块链大爆发但专业人才少,所以很感兴趣的从渐进式构建从原理到实战。

一、 geth客户端

1.geth私有链搭建

1.1geth的安装

sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa: ethe reum/ethereum
sudo apt-get update
sudo apt-get install ethe reum

1.2配置创世块文件
①创建一个名为genesis.json的文件,写入图片中的代码

{
  "config": {
        "chainId": 18,//参数配置相同
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
  "alloc"      : {},
  "coinbase"   : "0x0000000000000000000000000000000000000000",
  "difficulty" : "0x2",//挖矿难度
  "extraData"  : "",
  "gasLimit"   : "0x2fefd8",// gasLimit上限
  "nonce"      : "0x0000000000000042",
  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00"
}

②初始化创世节点并设置data目录启动节点

geth –datadir ./data init gensis.json
geth – datadir ./data –network 15 – port 30303 –rpc – rpcaddr 0.0.0 – rpcport 8545 – rpcapi ‘db,net,eth,web3,personal’
--rpccorsdomain ‘*’ –nat “any” –nodiscover console

1.3账户管理
①创建账号

Personal.newAccount(“123”)

②查看账号

Eth.accounts

③查看余额

Eth.getBalance(eth.accounts[0])

1.4启动挖矿
①启动挖矿miner.start()
②停止挖矿miner.stop()
2.geth的操作命令

二、 智能合约的编写及调试技巧

2.1 博彩行业的痛点分析

  • 赖账
  • 假球
  • 舞弊、欺诈

比特币是数字货币;数字资产。博彩行业是数字资产中的一种,区块链解决数字资产的问题非常合适

2.1.1 区块链解决痛点

  • 公开透明
  • 不可篡改
  • 智能合约交割
  • 加密保护

2.2 足彩合约的开发

2.2.1常见以太坊应用架构
常见以太坊应用架构
2.2.2核心功能与角色
①CTO:创建游戏
②玩家:下注
③CTO:游戏开奖
2.3合约开发
soccer.sol

pragma solidity^0.4.20;

contract betsoccer {

    address cto;
    struct Game {
        string hostTeam;
        string guestTeam;
        uint16 point;
    }
    Game public game;
    struct Player {
        address addr;
        uint amout;
    }

    Player[] public teamsA;
    Player[] public teamsB;
    uint totalTeamA;
    uint totalTeamB;
    bool canReset;
//构造函数和设置
    function soccergame(address _cto)payable public {
    cto = _cto;
    canReset = true;
}
    function setGame(string A,string B,uint16 pk)public {
    assert(canReset);
    assert( msg.sender == cto);//must cto
    game.hosetTeam = A;
    game.guestTeam = B;
    game.point = pk;
    canReset = false;
    totalTeamB = 0;
    totalTeamA = 0;
}
//下注函数
    function bet(bool aORb)public payable{
        assert( msg.value > 0);
        Player memory player = Player(msg.sender,msg.value);
        if( aORb ){
            //host
            teamsA.push(player);
            totalTeamA += msg.value;
        }
        else{
            teamsB.push(player);
            totalTeamB += msg.value;
        }
    }
//开奖函数,只有CTO可以开奖
    function openGame( uint8 scoreA, uint8 scoreB)public payable{
        assert( msg.sender == cto);
        //who win? A=1B=0,50
        if( scoreA *100 > scoreA *100 + game.point){
            //host win
            for(i=0;i< teamsA.length;i++){
                player = teamsA[i];
                player.addr.transfer(90*totalTeamB * player.amount/totalTeamA/100 + player.amount);
            }
            cto.transfer(totalTeamB * 10 /100);
        }
        else{
            for(i=0;i< teamsA.length;i++){
                player = teamsB[i];
                player.addr.transfer(90*totalTeamA * player.amount/totalTeamB/100 + player.amount);
            }
            cto.transfer(totalTeamA * 10 /100);
        }
    }

}

DApp一定要做角色分析
Solidity语法相对简单,但是要多考虑安全

三、版权交易系统设计

3.1版权加以系统的痛点

背景:一个摄影师社交网络,摄影师在其中分享照片,摄影师对照片进行评价,挑选出最优秀的作品,媒体和企业在其中发下你有价值的照片并且购买版权
痛点:

  • 收入模式不明确,长期处于亏损状态
  • 盗版发现和认定困难,赔偿金追索成本高昂
  • 社交平台属性对优质照片的挑选和确认构成限制
  • 社区发展进入瓶颈期,需要新的模式

3.2版权交易系统的设计
3.2.1 区块链系统的解决思路

  • 金融圈里平民化
  • 消除信息不对称
  • 提升流动性
  • 跨边界强协作

3.2.2 角色分析

  • Photographer
  • Curator
  • Buyer
  • Governor
  • Investor

3.2.3 角色激励设计

角色 激励行为 惩罚行为
Photographer 拍摄优秀图片 盗用、刷单
Curator 点赞、评论 点赞、评论
Buyer 投资眼光精准 恶意炒作
Governor 公正公平 暗箱操作、腐败
Investor 投资眼光精准 恶意炒作

3.2.4 双层token设计
双层token设计

总结:

1.痛点分析是区块链系统设计的必要步骤
2.好的经济系统有助于系统未来的良性发展

猜你喜欢

转载自blog.csdn.net/Prototype___/article/details/81582978
今日推荐