Bytom

干货|读懂公链学开发:深入浅出剖析比原链技术特性(分享实录)

筅森魡賤 提交于 2021-01-20 11:18:48
大家好,非常感谢大家在百忙之中抽空收听比原链技术入门课程,我是比原链技术运营经理钟立飞。 今天主要给大家介绍一些比原链的基础技术知识,希望能给大家带来一些启发。同时比原链的开发大赛也在进行当中,欢迎大家参加我们的比赛,我们准备了200万BTM的丰厚奖励,同时推荐身边的开发者参赛也能得到推荐奖励。(活动详情见报名网站: http://bytom.io/developers_zh/) 下面进入正题,本次分享主要分为以下几部分: Bytom是什么 Bytom有哪些特性 Bytom的设计原理和技术架构 比原链的UTXO模型以及一些主要的流程 比原的智能合约和合约模板 1 比原链介绍 比特币是点对点的点子现金系统,以太坊是一个巨大的分布式计算机,那么比原链是什么? 比原链想要连通原子世界和比特世界,促进资产在两个世界间的交互和流转。 我们知道区块链的创新之一就是解决了价值传递问题,传统互联网可以很方便地传递信息,但是并不适合于传递价值,因为不能保证我把某个东西给你,你多了而我少了,信息可以方便地复制和传播,结果往往是你有一份我仍然还有一份。而区块链通过一系列的措施较好地解决了这个问题,但是我们看到不论是比特币还是以太坊,它本身还是在虚拟世界中做价值传递,而比原链想打破这个界限,把数字世界和物理世界中的资产在比原链上登记,以比原链作为连接的桥梁,实现流通、对赌以及其他复杂操作。

使用Java SDK实现离线签名

此生再无相见时 提交于 2019-12-22 00:06:16
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 严格来说,tx-signer并不属于SDK,它是bytomd中构建交易、对交易签名两大模块的java实现版。因此,若想用tx-signer对交易进行离线签名,需要由你在本地保管好自己的私钥。 如果你的目的是完全脱离于bytomd全节点,可能需要自己做更多额外的工作。比如,在构建交易时,需要花费若干个utxo(Unspent Transaction Output)作为交易的输入,如果没有全节点则需要自身来维护utxo。当使用tx-signer构建完成一笔交易并签名后,若没有全节点的帮助,也需要自己实现P2P网络协议将交易广播到其他节点。 本文不会对以上技术细节进行讨论,而是利用bytomd全节点查询可用的utxo构建交易,对交易进行签名并序列化后,同样使用bytomd提交交易。 准备工作 将Maven依赖引入到你的项目中 获取SDK源码 git clone https://github.com/Bytom/bytom-java-sdk.git 打包成JAR包并安装到本地的Maven仓库 $ mvn clean install -DskipTests 在项目的POM文件中添加依赖。其中,第一个依赖是bytomd api的封装,可用于查询可用的utxo以及提交交易;第二个依赖用于构建交易以及对交易进行离线签名。

Bytom资产发行与部署合约教程

给你一囗甜甜゛ 提交于 2019-12-22 00:02:45
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 比原项目仓库: Github地址: https://github.com/Bytom/bytom Gitee地址: https://gitee.com/BytomBlockchain/bytom 发行资产 在比原链上发行资产比较方便快捷,使用节点的dashboard图形界面操作就可以,先在 **“资产”**一栏新建资产 新建完资产,需要上链,否则区块不认识你这个资产,那么在交易中的高级交易进行issue,点击 Add action ,总共三个action分别是 Issue 、 Control with address 、 Spend from account 输入账户的密码,等待交易确认,一旦确认成功资产就会发到刚才指定的地址上。可以只发一个地址,也可以发到多个地址,添加多个Control with address 即可。 编译合约 编译合约通过api进行编译,准备好postman或者其他可以post的工具,笔者使用的是postman。 笔者看了官方的多个合约模版,于是准备部署一个简单的比较数字大小的合约。即是编译合约时会指定数值,如果解锁合约的人带上大于此数值则可以获得合约里的资产。 笔者的合约代码如下: contract equals(target:Integer) locks value{ clause

Bytom Java版本离线签名

你说的曾经没有我的故事 提交于 2019-12-21 23:50:15
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom tx_signer Java implementation of signing transaction offline to bytomd. Pre Get the source code $ git clone https://github.com/Bytom/bytom.git $GOPATH/src/github.com/bytom git checkout $ git checkout dev Why need dev branch? Because you could call decode transaction api from dev branch and obtain tx_id and some inputs ids. Build $ cd $GOPATH/src/github.com/bytom $ make bytomd # build bytomd $ make bytomcli # build bytomcli When successfully building the project,

用bytomswap进行“跨链”资产转换

陌路散爱 提交于 2019-12-16 10:23:17
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> bytom是专注资产领域的公有区块链平台,最近开发者社区基于比原做了一款资产转换平台。我们可以在上面通过自己现有的资产在比原上发行资产。然后达到资产转换的目的。 一. 以太币资产转换成比原上的资产 首先打开bytomswap, 网址: https://www.bytomswap.io 然后我们选择我们要交换的资产,我们可以发现支持很多种交换的资产。 因为笔者刚好手里有以太币(ETH),所以就用imToken钱包里的以太币(ETH)来做资产交换,然后在比原上发行自己的资产。在接收地址中输入比原钱包的地址。点击Next。(imToken和bycoin都可以在Apple store 非大陆区搜到) 然后我们看到下图出现一个ETH的二维码地址,这个地址主要是作为我们转账ETH的二维码地址。 通过imToken钱包转0.0005个以太币到上图的地址。 在imtoken上点击下一步,检查我们发送的交易,确认我们的交易无误,输入密码进行交易。 在imtoken上查看交易详情,我们发现交易已经确认,然后显示了交易详细收据。 然后我们在bytomswap点击Next就可以看到交易完成。 然后我们可以去区块链浏览器上面查看,我们已经基于比原的合约创建了一种和以太币1:1的资产。 然后我们去比原的bycoin钱包上查看我们已经有了0

Bytom Dapp 开发笔记(三):Dapp Demo前端源码分析

情到浓时终转凉″ 提交于 2019-12-16 10:23:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本章内容会针对比原官方提供的dapp-demo,分析里面的前端源码,分析清楚整个demo的流程,然后针对里面开发过程遇到的坑,添加一下个人的见解还有解决的方案。 储蓄分红合约简述 为了方便理解,这里简单说说储蓄分红合约的内容,具体可以查看 储蓄分红合约详细说明 ,储蓄分红,顾名思义就是储蓄之后,当达到一定的时间,按照比例返回本息这样的意思,所以demo中拆分成 saving (储蓄)与 profit (提现)两个页面,本章内容是针对合约交易的提交,所以只针对储蓄页面说明。 比原官方Dapp-demo使用说明 比原官方demo地址 1)访问的前提需要用chrome打开 比原官方demo地址 ,同时安装bycoin插件,在应用商店搜索就行; 2)安装完bycoin,需要初始化用户信息,新建或者导入备份文件去恢复用户; 3)填写指定资产数量,点击确定; 4)弹出合约交易专用页面,填写密码,点击确认; 5)查看交易流水 前端源代码分析 源码 : 储蓄分红合约前端源代码 (本章内容讲解的是 2019年7月10号 最新版的代码) 前端代码是基于前端框架react去做的,很容易读懂,结构如上,我们来看看作为储蓄页面(saving)Bytom-Dapp-Demo1\src\components\layout\save

Bytom 储蓄分红 DAPP 开发指南

社会主义新天地 提交于 2019-12-16 10:19:17
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 储蓄分红DAPP 储蓄分红合约简介 储蓄分红合约指的是项目方发起了一个锁仓计划(即储蓄合约和取现合约),用户可以在准备期自由选择锁仓金额参与该计划,等到锁仓到期之后还可以自动获取锁仓的利润。用户可以在准备期内( dueBlockHeight )参与储蓄,按照合约规定可以 1:1 获取同等数量的储蓄票据资产,同时用户锁仓的资产( deposit )将放到取现合约中,并且项目方是无法动用的,等到锁仓期限( expireBlockHeight )一到,用户便可以调用取现合约将自己储蓄的资产连本待息一同取出来。其示意图如下: 从上图中可以看出,项目方发布了一个利润为 20% 的锁仓项目,其中储蓄合约 FixedLimitCollect 锁定了 1000 个票据资产( bill ),同时项目方将 200 个储蓄资产( deposit )锁定到利息合约中。待项目方发布完合约之后,所有用户便可以参与了。例如上图中 user1 调用合约储蓄了 500 ,这 500 个储蓄资产将被锁定在取现合约 FixedLimitProfit 中,同时 user1 获得了 500 个票据资产,剩余找零的资产将继续锁定在储蓄合约 FixedLimitCollect 中,以此类推, user2 和 user3 也是相同的流程

比原链(Bytom)正式开源Bytom-JavaScript库

北城以北 提交于 2019-12-16 10:13:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 12月13日,比原链(Bytom)正式开源Bytom-JavaScript库,这个库是官方原生支持的新一代JavaScript SDK接口。JavaScript是世界上最多人使用的解释性脚本语言,JS库的开源,方便比原生态及相关开发者使用JS调用Bytom,也能吸引更多JavaScript生态开发者接入比原链进行开发,从而扩大比原链技术的使用人群和范围。开源项目地址:https://github.com/Bytom/bytom-js。欢迎大家使用! 来源: oschina 链接: https://my.oschina.net/u/3886279/blog/3143436

Bytom 移动端钱包SDK FAQ

余生颓废 提交于 2019-12-09 10:51:16
比原链移动端钱包SDK项目地址: https://github.com/Bytom-Community/Bytom-Mobile-Wallet-SDK 1、客户端钱包SDK需要实现哪些功能? 创建密钥、密钥列表、创建账户、账户列表、创建地址、地址列表、备份钱包、恢复钱包、重置密码、交易签名 2、客户端钱包SDK是否需要联网? 不需要联网 3、创建钱包地址的流程怎样的? 创建密钥 -> 创建账户 -> 创建地址 用密钥创建账户,然后在账户下创建地址,一个账户可能由多个密钥创建,即多签账户,一个账户下也可以有多个地址 4、发起一笔交易客户端钱包需要做什么? 全节点钱包发起一笔交易的顺序是build-transaction->sign-transaction->submit-transaction 客户端钱包发起一笔交易的build-transaction、submit-transaction依赖于中心化的节点,需要把一笔交易的发起人地址、接收人地址、资产类型、交易资产数量通过中心化节点build-transaction的API发送给中心化节点,对中心化节点build-transaction返回的结果签名,即执行sign-transaction,然后通过中心化节点submit-transaction的API提交交易上链 5、用其他语言实现bytom钱包的思路是怎么样的?

Docker部署Bytom全节点钱包

℡╲_俬逩灬. 提交于 2019-12-07 14:57:01
微服务和容器目前比较流行,相信很多小伙伴都比较熟悉docker, 如果你不是太了解,可以查看文档 docker学习手册 。那如何用docker搭建比原链(Bytom)的节点呢? 在操作之前,请自行安装docker。然后在你的终端输入(windows对应cmd): docker 出现如下图说明你已经安装成功了docker: 获取bytom的docker镜像 docker pull bytom/bytom:latest 用docker images 查看自己下载的bytom镜像 docker images 然后出现如下图说明已经获取到了镜像: #初始化: docker run -v < Bytom / data / directory / on / host / machine >:/ root /.bytom bytom:latest bytomd init --chain_id < chainId > 默认的Bytom数据目录(在主机上)是: Mac: ~/Library/Bytom Linux: ~/.bytom windows: %APPDATA%\Bytom chainId 有三种选择: mainnet:连接到主网 testnet:连接到测试网 solonet:单节点 如下例(mac/testnet): docker run -v ~/Library/Bytom:/root/