2019独角兽企业重金招聘Python工程师标准>>>

1

前言

【项目目标】

开发一个去中介化的租房EOS DAPP,实现租客与房东互赢。

【项目需求】

1、建立本地节点,创建钱包、加载biod合约、创建代币分配账户。

2、部署eosjs项目,提供创建代币合约、创建账户(可批量)、转账、查询代币余额等API。

3、WEB前端为一个简易租房界面,可以浏览租房信息,会员注册(赠送代币)后,可以预约看房,看房后可以对房源打分(赠送代币),租房后可以对房源打分(赠送代币),后台房东可以发布出租房源(赠送代币),翻转房源状态(赠送代币),代币在平台增值后,可以做为房租支付或抵押。

4、本项目代币名称为:BLR(BlockRent的简写)

【测试环境】

在Win7下安装的VMWare10,在VMWare10中安装Ubuntu18.04、Docker18.03.1-ce、EOS DAWN v1.0.8,环境看起来有点兜转,就暂且用做测试吧。

2

部署本地节点

1、启动节点

$ sudo docker run --rm--name eosio -d -p 8888:8888 -p 9876:9876 -v /tmp/work:/work -v/tmp/eosio/data:/mnt/dev/data -v /tmp/eosio/config:/mnt/dev/configeosio/eos-dev  /bin/bash -c "nodeos-e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::wallet_plugin--plugin eosio::producer_plugin --plugin eosio::history_plugin --plugineosio::chain_api_plugin --plugin eosio::history_api_plugin --plugineosio::http_plugin -d /mnt/dev/data --config-dir /mnt/dev/config--http-server-address=0.0.0.0:8888 --access-control-allow-origin=*--contracts-console"$ docker exec -it eosio/bin/bash

2、查找eosio公私钥

在当前路径下,我们可以打开config.ini文件,查找signature-provider,即可找到eosio公私钥:

EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3

笔者注:在DAWNv1.0.2时,公私钥是可以独立于钱包创建账户操作的,但v1.0.5后就必须先将私钥导入到钱包里才能操作,所以我们早早地就把公私钥复制下来,准备好接下来的操作。

3、创建钱包

cleos wallet create -nblockrent_walletPW5KPFSWL3YfgRPVaER9EjoScBk1Afdcx6T3RVWHCqpjfuuySmC7G

4、将eosio账户密钥导入钱包

cleos wallet import -nblockrent_wallet 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3

5、创建bios合约

cleos set contract eosiocontracts/eosio.bios -p eosio#返回的交易地址cd15f3ee17c043f202f801444e73b69165d0becd6d153ad8e41c870e88421a87

6、创建KEY

# 创建合约账户blockrent111cleos create keyPrivate key:5JhDyR6zNDifzoJPE5MnfxvLvbHdXTSBuKzaXEr82rL6ChoRyvLPublic key:EOS5JPDqzVDQ8kCo6AWdxhKpynmJsWUfbwBiaDs2fMNhAnEDSd525# 团队及基金会blockrent222cleos create keyPrivate key:5KQYJzZAR8CgrLW3x7vkhm86NKxziDoZn2JJKhdbTbH9WjTdGZ8Public key: EOS6t22TsDrrSnmkDv2pv4jagZMxnw4Hc8pQcmTo8476inymwqn9d# 社区培养及推广blockrent333cleos create keyPrivate key:5JKqGKqPkCtQc8EHy5paZ9KJKnRKY4XEukWtVn1w7HT9ZHZGip5Public key:EOS5qGrpjdFR647sbec1sQyqvnQ8hrUZJGR1t24EGue1HUJKWLEes# 激励池blockrent444cleos create keyPrivate key:5JQ85e4AMagc3D43dvH6ngFG6ak6ubVamweMhHcTxBjKTfSWGXPPublic key:EOS63yTyuJnbgoCVDXkrgjG9SGCSxBLUAYscZWQf4NaLV7oTkM2ex# 定向邀约机构方blockrent555cleos create keyPrivate key:5JmQQpEGgXBD33g1yy4bFfaPfsQZrwqU9UwUKwphC1hZ5WqBsXLPublic key: EOS7X9EPbQdGxUMfN7bXTQz1cUSWxwpGjTPt8yGsiFxuDfFAWkhS8

7、导入KEY到钱包

cleos wallet import -nblockrent_wallet 5KQYJzZAR8CgrLW3x7vkhm86NKxziDoZn2JJKhdbTbH9WjTdGZ8cleos wallet import -nblockrent_wallet 5JKqGKqPkCtQc8EHy5paZ9KJKnRKY4XEukWtVn1w7HT9ZHZGip5cleos wallet import -nblockrent_wallet 5JQ85e4AMagc3D43dvH6ngFG6ak6ubVamweMhHcTxBjKTfSWGXPcleos wallet import -nblockrent_wallet 5JmQQpEGgXBD33g1yy4bFfaPfsQZrwqU9UwUKwphC1hZ5WqBsXL

8、创建账户

cleos create account eosioblockrent111 EOS5JPDqzVDQ8kCo6AWdxhKpynmJsWUfbwBiaDs2fMNhAnEDSd525 #需要EOS抵押cleos create accountblockrent111 blockrent222 EOS6t22TsDrrSnmkDv2pv4jagZMxnw4Hc8pQcmTo8476inymwqn9dcleos create accountblockrent111 blockrent333 EOS5qGrpjdFR647sbec1sQyqvnQ8hrUZJGR1t24EGue1HUJKWLEescleos create accountblockrent111 blockrent444 EOS63yTyuJnbgoCVDXkrgjG9SGCSxBLUAYscZWQf4NaLV7oTkM2excleos create accountblockrent111 blockrent555 EOS7X9EPbQdGxUMfN7bXTQz1cUSWxwpGjTPt8yGsiFxuDfFAWkhS8

我们可以通过cleosget account <账户名> -j来查看一下账户详细信息,-j参数表示输出json格式。

9、创建代币合约BLR

cleos set contractblockrent111 contracts/eosio.token/ -p blockrent111# cleos push actionblockrent111 create '["eosio", "1000000000.0000 BLR", 0, 0,0]' -p blockrent111cleos push actionblockrent111 create '["blockrent111", "1000000000.0000BLR", 0, 0, 0]' -p blockrent111

10、发行代币

在产品设计阶段,我们约定的激励分配是这样的:

·         总发行 10亿BLR ·         团队及基金会(blockrent222) 25%=250000000.0000 BLR·         社区培养及推广(blockrent333) 15%=150000000.0000 BLR·         激励池(blockrent444) 40%=400000000.0000 BLR·         定向邀约机构方(blockrent555) 20%=200000000.0000 BLRcleos push actionblockrent111 issue '["blockrent222", "250000000.0000 BLR","给blockrent222发行25%"]' -pblockrent111cleos push actionblockrent111 issue '["blockrent333", "150000000.0000 BLR","给blockrent333发行15%"]' -pblockrent111cleos push actionblockrent111 issue '["blockrent444", "400000000.0000 BLR","给blockrent444发行40%"]' -pblockrent111cleos push actionblockrent111 issue '["blockrent555", "200000000.0000 BLR","给blockrent555发行20%"]' -pblockrent111

到目前为止,我们建立一条本地私有区块链,创建了一个代币合约BLR,并按激励分配规则发行到了4个分账户,在接下来的开发中,我们将使用激励池blockrent444中的余额来进行交易。

3

部署EOSJS API

1、克隆eosjs项目代码

此处项目代码部署在运行着本地节点的Ubuntu系统中,如果是在生产环境中,可以单独部署这个项目,对外有一个独立IP可访问即可。

cd ~/
git clone https://github.com/luoxiaohui/eos4node.git 访问 http://localhost:8888/v1/chain/get_info 获取本地节点信息,localhost 也可以换成局域网IP地址,复制chain_id字段值。
找到~/eos4node/app/controller/home.js文件,根据本地节点数据不同,做如下修改:
13行处const pk = '***',修改为 blockrent444 账户私钥。
20行处const eosServer ='***'注释掉,启用22行本地服务地址。
28行处const mainAccount = '***',修改成blockrent444。
45行处const eos = Eos(...);,其中chainId修改为chain_id字段值,如cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f。
295行处myaccount.create...,可修改代币名称和总发行量。保存并上传。

2、运行项目,开启服务

cd ~/eos4node# 下载node_modules需要等待一段时间,也可以提示下载$ npm i$ npm run dev> eos4node@1.0.0 dev/home/simon/eos4node> egg-bin dev2018-07-09 17:45:36,209INFO 24999 [master] node version v8.11.32018-07-09 17:45:36,211INFO 24999 [master] egg version 2.9.12018-07-09 17:45:36,664INFO 24999 [master] agent_worker#1:25005 started (450ms)2018-07-09 17:45:37,580INFO 24999 [master] egg started on http://127.0.0.1:7001 (1369ms)

如上结果所示,我们服务端的API就准备就绪了。

4

前端对接

这里为了简洁,我们把界面给省略了,我们新开一个终端来模拟前端访问API,也可以下载一个chrome插件postman来访问。

1、创建账户API

临时新建一个KEY:

cleos create keyPrivate key:5KbRAog4DxwAMthSrb44ZNGtGD828mzCfEvXkvVDSakxQtFBr15Public key:EOS6y7ok9AwmToGmgsFWCQU7iGJMsStTQf6g4F6aoHTH56zEos5Sk

比如创建新账户 ouyangxinmin :

curl -i -X POSThttp://localhost:7001/account/create -d username=ouyangxinmin -dactive=EOS6y7ok9AwmToGmgsFWCQU7iGJMsStTQf6g4F6aoHTH56zEos5Sk -downer=EOS6y7ok9AwmToGmgsFWCQU7iGJMsStTQf6g4F6aoHTH56zEos5Sk

2、转账API

blockrent111给账户 ouyangxinmin 转账:

curl -i -X POSThttp://localhost:7001/transfer -d contract=blockrent111 -d from=blockrent111 -dto=ouyangxinmin -d pk=5JhDyR6zNDifzoJPE5MnfxvLvbHdXTSBuKzaXEr82rL6ChoRyvL -dquantity="1000.0000 BLR" -d mome="token reward"

ouyangxinmin 给账户blockrent222转账:

curl -i -X POSThttp://localhost:7001/transfer -d contract=blockrent111 -d from=ouyangxinmin -dto=blockrent222 -d pk=5KbRAog4DxwAMthSrb44ZNGtGD828mzCfEvXkvVDSakxQtFBr15 -dquantity="10.0000 BLR" -d mome="token reward"

3、获取代币余额

curl -i -X POSThttp://localhost:7001/currency/balance -d contract=blockrent111 -daccount=ouyangxinmin

5

后端对接

在上文中第一节第9、10步,我们已经通过命令终端部署了合约、创建了代币合约,也可以把这个功能集成到后台操作,如果已经操作过了第一节第9、10步,以下第1、2步可跳过。

1、调用部署合约API

curl -i -X POSThttp://localhost:7001/deployContract -d contract=blockrent111

2、调用创建代币合约接口

代币名称BLR已经写在home.js代码中,可参考第二节第1点做修改,也可以改进一下做为参数传入。

curl -i -X POSThttp://localhost:7001/createCurrency -d contract=blockrent111

**3、批量创建测试账户 **

curl -i -X POSThttp://localhost:7001/createCurrency -d contract=blockrent111# 返回5个账户,可以配置创建个数"4ksalziynrzc","jsa4pocy3rzi","l5eauvfqmu2h","ihl1wsbau1yr","zaxwz2lkhkkn","glkecjmtfnwk"

为了提高用户体验,让用户无感知地创建账户,可以提前在后台批量创建一些测试账户,当用户注册时,自动绑定到注册账号,实现无缝对接区块链,但这样有点过于中心化了,类似交易所的做法。

—— 【创业股】诚聘开发工程师——

【岗位名称】PHP开发工程师

【薪资范围】10k-20k/上海徐汇

【职位描述】

1, 负责后端的架构设计和代码编写,实现业务流程;

2,负责WEB APP等手机侧系统的后台开发对接;

【岗位要求】

1、精通PHP开发,,熟悉PHP开发框架Thinkphp5,有Laravel开发经验的加分;

2、扎实的SQL知识,能熟练运用MySQL数据库,具备Nosql开发经验者优先录用;

3、有一定的前端编程能力,如具有Jquery、Bootstrap、Vue、React等任意一到两种开发经验

4、有2年以上互联网企业相关开发经验优先

【岗位名称】前端开发工程师

【薪资范围】15k-20k/上海徐汇

【职位描述】

1. 负责(PC+移动)端界面的前端构建,各类交互设计与实现;

2. Web前端表现层及与后端交互的架构设计和开发;

3、持续的优化前端体验和页面响应速度,并保证兼容性和执行效率。

【岗位要求】

1. 3年以上WEB前端(html5)开发经验,前端重构与脚本开发经验;

2. 精通HTML5、CSS/CSS3、JavaScript等前端相关技术,熟悉W3C标准;

3,熟悉VUE,React,Jquery、JqueryMobile等框架,响应式页面开发经验,能开发兼容移动版浏览器的应用,并且能实现各种交互效果;

4,有Html5 WEB App打包技术基础者优先;

5,对区块链项目有兴趣,了解智能合约,WEB3.JS等基本功能。

简历投放地址:yangnx@vcstock.cn

内容来源:海阳之新(简书)专栏

作者:HiBlock&创业股 上海技术工坊 分享嘉宾欧阳新民

Blockathon|48小时极客竞赛,区块链马拉松等你挑战(成都)

时间:2018年9月14-16日

地点:成都高新区天府五街200号菁蓉国际广场2号楼A座12楼中韩互联网+新技术孵化器

  • 招募50名开发者(识别下图二维码或点击“阅读原文”即可报名)

  • 报名费100元为参赛押金,参赛者个人原因不能到场参加活动概不退款;参赛者全程参与活动,待活动结束后现场退还。9月14日18:00开始第一次签到,9月15日和16日每天早上都要记得签到哦。

  • 主办方免费提供2天的食物、饮料,并为每一位参会者准备一件文化衫

以下是我们的社区介绍,欢迎各种合作、交流、学习:)

转载于:https://my.oschina.net/u/3782027/blog/1935538

去中介化的租房EOS DAPP,实现租客与房东互赢相关推荐

  1. 元宇宙产业委联席秘书长叶毓睿:去中心化和去中介化的定义、区别,以及和元宇宙的关系

    原创 Peter Ye  转自:乐生活与爱IT Plus 近日有个有关元宇宙的线上分享,有位名叫谢晓雪的听众提了一个我之前没思考过的问题:去中心化和去中介化的区别? 当时我回答了一部分,但主要是讲的之 ...

  2. 基于IPFS去中心化相册以太坊Dapp

    Dapp-IPFS-Image 基于IPFS去中心化相册以太坊Dapp 注意: 使用该 github 克隆到本地, 需要 执行 $ npm install 安装依赖 node_modules 安装IP ...

  3. python去中心化_EOS区块链dApp去中心化应用汇总

    EOS最近一直在区块链新闻中.它的主干网(公有链)发布了,人们仍然对它们持怀疑态度.在101Blockchain.com网站上,我们知道会有紧张的投资者.怀疑的分析家和像你一样好奇的读者.这就是为什么 ...

  4. 特斯拉、蔚来、小鹏纷纷下场卖保险,新能源后市场加速去中介化

    迈入2022年,新能源车企们开始不约而同地布局保险业务. 据天眼查显示,蔚来保险经纪有限公司已于1月19日成立,该公司由蔚来控股有限公司100%控股.除传统车企外,特斯拉.小鹏等新能源车企业纷纷进军保 ...

  5. 去中心化交易所前路明朗,基于EOS的去中心化交易所力拔头筹

    去中心化交易所是大势所趋,越来越多的去中心化交易所都冒了出来,特别是基于EOS链.笔者最近看了好几个有关于去中心化交易所的报告,都言及目前所有公链上的dapp之争,其中数EOS上的dapp竞争最为厉害 ...

  6. 区块链平台Coursera(第四周)替代去中心化解决方案

    课程链接 https://www.coursera.org/learn/blockchain-platforms/home/week/4 为自己学习记的笔记,翻译可能存在问题,望谅解. 替代去中心化解 ...

  7. Web3.0介绍与产业赛道(去中心化,金融与数字资产,应用与存储,区块链技术)

    文章目录 1.web3.0时代--区块链技术 2.产业赛道:去中心化金融与数字资产 3.产业赛道:去中心化应用与存储 4.区块链:基础设施与区块链安全和隐私 1.web3.0时代--区块链技术 Web ...

  8. 对内对外烧钱,还顾自去门店化,独角兽爱屋吉屋终将归隐?

    "仅仅用了273天就快速完成四轮融资,爱屋吉屋创造了中国房市的奇迹,当时的估值就超过了10亿美元,加入了"独角兽"俱乐部,并且是成长最快的那个.爱屋吉屋所秉承的互联网模式 ...

  9. Minima:为什么 Web3 需要完全去中心化

    我们邀请了来自Minima的Jonathan MacDonald关于 Web3 的话题来谈论 Web 3,他建议只有在完全去中心化的情况下才有可能,而加密世界还没有 – 还没有! 他在下面更详细地解释 ...

  10. 构建去中心化安全桥梁 Conflux 与 Chainlink 达成战略合作

    日前,Conflux 宣布与 Chainlink 达成战略合作. Conflux 即将接入去中心化预言机服务提供商 Chainlink,双方将共同在资源整合.信息互动.技术开发等方面进行深度合作. 作 ...

最新文章

  1. 西藏监狱首次奏响《婚礼进行曲》
  2. centos 定时删除文件_CentOS自动删除n天前日志命令
  3. python基础——logging、OS、sys、random、string模块(0424)
  4. C# CheckBox与RadioButton
  5. Ruby中对象数组排序
  6. 关于iis中的网站,在ie下点击服务器控件无反应的问题
  7. [ActionScript 3.0] AS3.0 下雨及涟漪效果
  8. 108_Power Pivot购物篮分析分组GENERATE之笛卡尔积、排列、组合
  9. 织梦(安装,模板,基本标签)
  10. NLP - AIML
  11. Cisco ASA 5585防火墙ASDM配置
  12. OPTEE的系统调用
  13. ubuntu nvidia驱动更新
  14. 人物动作姿势怎么画?
  15. Lesson 13-14 How often do you exercise?
  16. matlab角频率怎么表示,[Matlab]频率f,角频率Ω和数字频率w的物理含义
  17. backbone.js_架构介绍
  18. 在北京工作了两年,现在跳槽到了广州,社保公积金该如何办理?
  19. 【花雕动手做】有趣好玩的音乐可视化系列项目(31)--LCD1602液晶屏
  20. java编写九宫格拼图游戏_九宫格拼图游戏

热门文章

  1. 大学英语综合教程四 Unit 5 课文内容英译中 中英翻译
  2. 文件夹提示文件或目录损坏且无法读取怎么修复
  3. python经纬度转换xy坐标公式_Python经纬度坐标转换为距离及角度的实现
  4. ogg转mp3格式转换器哪个好用
  5. 如何屏蔽搜狗浏览器中的广告 搜狗浏览器拦截广告的教程
  6. Latex写科技论文小技巧--修改稿件
  7. 公众号滑动图代码_微信公众号文章滑动图片怎么做的呢?
  8. Django对接微信公众号以实现消息自动回复
  9. java统计字数_Java 8的字数统计
  10. IndoorGML 介绍