Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >​【刘文彬】探路以太坊

​【刘文彬】探路以太坊

作者头像
圆方圆学院
修改于 2019-01-08 13:28:10
修改于 2019-01-08 13:28:10
7010
举报

原文链接:醒者呆的博客园,https://www.cnblogs.com/Evsward/p/ethereum.html

关键字:以太坊,加密货币,crowdsale,geth,console,web3.js

以太坊简介

一句话简介:以太坊是一个基于功能齐全的编程语言构建的众多去中心化区块链应用的平台。

下面来解读一下这句话:

  • 平台:首先以太坊是一个平台,这个平台上面有很多应用。
  • 应用:这些应用是是去中心化的,基于区块链技术。所以这些应用可以实现永不停歇,因为它是分布式的,去中心化的,基于P2P网络的,这些应用被管理在以太坊钱包上面。
  • 钱包:以太坊钱包,本质上以太坊钱包也是其中一个应用,它是一个网关,可以管理所有基于以太坊平台的应用,它可以让你持有或者保护以太币或其他建立在以太坊上的加密资产。以太坊钱包也可以实现直接对智能合约的写入、部署以及使用。
  • 区块链:以太坊区块链是一条强大的,分享型的,全球性的基础设施,用来证明财产的归属者以及财产的交易流向。通过这一条链,可以实现众多应用,开发者可以创建交易所、存储债务登记以及证实各种允诺等应用玩法。这些应用可以对各种实体期货进行交易,避免中间人攻击以及交易对方欺骗。
  • 智能合约:这些应用是使用一个功能齐全的编程语言构建的,这个语言指的是智能合约,而智能合约无疑是采用Go语言开发的。智能合约是这些应用的“驱动”,通过智能合约,应用可以完全按照编程所写去执行,而不会涉及downtime,审查,欺骗以及第三方干扰。

关于以太坊钱包,官方有一句话是 It allows you to hold and secure other crypto-assets built on Ethereum, 以太坊允许你持有和保护基于以太坊的加密资产,那么第一个问题这个加密资产是否可以自行创建?加密资产是否也可以是类似于以太币的电子货币?是的是的,完全可以,下面我们将具体介绍。

加密货币

使用智能合约的一种新语言Solidity,设计并发行你自己的加密货币。

上面讲到了各种实体期货以及以太币等资产,那么如果我想在以太坊平台上建立一个应用,应用内部的交易使用我自己的加密货币呢?这个加密货币可以代表真实世界的商品。这种加密货币会调用以太坊统一的虚拟币接口,从而让基于自定义货币的合同均可以兼容以太坊钱包,其他合同和交易也均采用这套接口。接着,对于你发行的加密货币是可以设置一个固定的总数或者一个基于某写规则而浮动的数量。在以太坊中,你可以:

  • 构建一种货币可以交易,同时可设定他们的发行量。
  • 构建一个中心化银行来发行货币。
  • 设计一种基于难题的加密货币。

请参考详细开发文档

众募

如果你已经有想法并准备在以太坊上面做点什么,但是缺乏启动资金。同样可以使用以太坊,创建一个合同来募集贡献者的资金直到达成某种目标。根据成果,这笔钱要么被发放到项目拥有者手里要么原路返还给贡献者们。所有的过程不需要中间的仲裁人,票据交换所或者不确信的对他人的信任。对了,你甚至可以使用上面你自己创建的加密货币来追踪对贡献者的报酬。通过以太坊,你可以:

  • 通过预售一件产品募集到一笔资金,哪怕这个产品还仅是在雏形阶段。
  • 通过出售一个区块链组织里的虚拟分享来募集资金。
  • 拍卖有限数量的物品。

请参考详细开发文档

代码语言:txt
AI代码解释
复制
众筹crowdfund和众募crowdsale的区别?
代码语言:txt
AI代码解释
复制
Crowdfunding简单点就是你有个想法,然后通过团购和预售(一些实际商品或者一些承诺把你名字放在电影啥的等)的方式募集项目资金。

crowdsale 也叫ICO (Initial Coin Offering)是很多区块链项目, 在项目正式推出之前销售token,旨在为这个项目的开发筹集资金,也可以拿来测试大众对产品的兴趣。在许多情况下,在crowdsale买了token后会被拿到公开市场上购买和出售,会获得独立于应用程序自己的市场价值。这也是吸引早期adopter的一种方法,他们相信这个token的价值,有升值空间. 还有和Crowdfunding不一样的是,crowdsale能够让那些投资者很快将持有的token在数字货币交易所中进行交易。而且token流动性极强的优势也会导致项目估值产生更好的溢价。区块链行业中最有名的Crowdsale是2014年9月的以太坊,大概筹集了价值1800万美元的比特币。

代码语言:txt
AI代码解释
复制
引用自[知乎](https://www.zhihu.com/question/55920197/answer/147711837)

民主

实际上就是一个投票系统。

创建一个自治组织,有规则来约束如何花钱以及帮助你或者其他投资者做决定。

现在,你有了自己的想法和有担保的资金,也有了自己发行的货币,你可能是时候需要雇佣一个可信的财务官来帮助你管理账户,组织董事会以及一堆的文书工作。然而,你可以将这些工作全都交给以太坊智能合约,它将收集你的支持者们的提议书,并通过一个完全透明可信的投票流程提交他们。

这相当于你拥有了一个机器人来帮助你打理一切,这其中最重要的一个好处就是:

可以免疫外部影响,只会依照你自己编写的程序代码坚决执行。而且因为以太坊网络的去中心化特性,你将能够获得7*24小时百分百的全时线上服务保证。

通过以太坊,你可以实现:

  • 一个虚拟的组织,组员们可以公平投票来处理问题。
  • 一个透明的协会基于股东们的投票。
  • 你自己的国家,拥有一个不变的宪法。
  • 一个更好的协商民主。

以太坊环境搭建

这里通过github下载源码进行搭建,ethereum地址:

git clone https://github.com/ethereum/go-ethereum && cd go-ethereum

构建geth命令:

make geth

构建所有工具:

make all

完整工具包包括:abigen bootnode ethereumwallet evm faucet geth mist puppeth rlpdump swarm wnode

安装工具

sudo ln -s $PWD/build/bin/* /usr/local/bin/

将编译好的所有工具软连接到/usr/local/bin目录下,该目录本身就在PATH环境变量下,所以我们可以在任意位置使用这些刚刚编译好的工具了。

每次对工具的编译,尤其是geth,都是调试的方式。

geth(go ethereum)

以太坊主要的命令行客户端工具。它是以太坊网络(可以是私有、公有或者测试网络)的一个入口点。能够作为一个完整的节点(默认)、存档节点(保存所有历史状态)或一个轻型节点(检索存活数据)。它可以被其他进程通过在JSON RPC在HTTP、WebSocket或IPC传输协议顶端暴露端点,作为进入以太坊网络的网关。

abigen(ABI生成器)

ABI(Application Binary Interface) 应用二进制接口,在以太坊生态系统中,它是一个标准的用来与合约交互的方式。交互包括区块链外部以及合约之间的交互。数据依据它的类型会被编码,正如本规范中的描述那样。编码不是自我描述,因此需要一个模式来解码。

源码生成以太坊合约定义转变为易于使用,编译时类型安全的Go包。它可以操作在以太坊Solidity用于扩充功能。然而它也接受Solidity源文件,让开发更加流水线化。记住abigen就是与Solidity相关的工具命令。Solidity上面也提到过,是设计并发行自己的加密货币的一种语言。

bootnode(轻型引导节点)

精简版的以太坊客户端实现,只加入网络节点发现协议,但不能运行其他更高级别的应用协议了。它可以被用作一个轻型的引导节点,旨在私有网络中寻找节点。

evm(以太坊虚拟机)

开发者工具版本的以太坊虚拟机。通过一个可配置的环境和执行模式,能够运行字节码片段。它的目的在于允许完全孤立不影响其他,细粒度地调试操作码。例如evm --code 60ff60ff --debug

gethrpctest(geth rcp test工具)

开发实用工具,支持我们的以太坊/RPC测试套件。这些套件能够校验基线符合以太坊JSON RPC规范。详情请参阅测试套件的readme

rlpdump(RLP转储)

转储请参考之前的一篇博文

开发实用工具,可将二进制RLP(递归长度前缀)转储(以太坊协议网络以及共识使用的数据编码)至用户友好的分层表示(例如,rlpdump --hex CE0183FFFFFFC4C304050583616263)

swarm

swarm 是一个分布式存储平台和内容分发服务。

swarm守护程序和工具。这是一个swarm网络的入口点。通过swarm --help可以查看命令行选项以及子命令。 详情参见swarm文档

puppeth

一个CLI(Command Line Interface for batch scripting,命令行界面)的向导程序,旨在创建一个新的以太坊网络。

geth详解

geth是以太坊最主要的一个客户端命令行交互接口,由以太坊源码编译而成,直接运行在客户端终端(我们一般都会将geth命令放到PATH里,在任何位置都可以使用该命令)。

geth都可以干嘛呢?下面看一下geth都有什么子命令。

  • account: 账户管理
  • attach: 连接到JavaScript交互环境
  • bug: 打开一个新窗口报告geth库的bug
  • console: 开启一个JavaScript交互环境
  • copydb: 从一个目标莲数据文件夹拷贝到本地的链上
  • dump: 从存储中删除掉一个指定的区块
  • dumpconfig: 显示配置值
  • export: 导出区块链到文件
  • import: 从文件导入区块链
  • init: 通过一个向导初始化一个新的创世区块(genesis block!)
  • js: 执行一个指定的JavaScript文件
  • license: 展示许可信息
  • makecache: 生成ethash校验缓存(用于测试),ethash是以太坊的计划性的PoW(工作量证明)算法。
  • makedag: 生成ethash挖矿DAG(用于测试),DAG是一个比特币的扩容方案
  • monitor: 监控使节点权值可视化
  • removedb: 除去区块链和状态数据库
  • version: 打印版本号
  • wallet: 管理以太坊预售钱包

上面提到了一个重要的信息:JavaScript交互环境。

JavaScript交互环境

console命令可以进入一个JavaScript交互环境,也可以使用geth --exec选项加入要执行的JavaScript命令在外部执行。

这里主要介绍直接进入JavaScript控制台的操作,在这个控制台中,你可以使用web3.js的方法通过JSON RPC调用所有的以太坊API

  • web3.js 是以太坊源码中提供的一套基于JS的SDK,开发者可以在终端JavaScript控制台亦可以在自己的浏览器网页中调用web3.js,可以执行以太坊所有的相关操作。
  • geth自己的管理API,是在JavaScript控制台中可以直接使用并且自带命令提示的一套工具。

注意:管理API实际上只是web3.js的部分成员的外露而已,这些成员包括admin,debug,miner,personal,txpool五个命令,实际上对应的就是web3.(admin,debug,miner,personal,txpool)。

JSON-RPC

JSON-RPC是一个无状态轻量级的RPC远程程序调用协议。web3.js是通过该协议直接调用了源码的api方法。

由此可知,我们不必太关心已封装好的JSON-RPC协议的内容(除非你想了解细节),在使用geth console的时候:

  • 如果涉及到admin,debug,miner,personal,txpool五个命令,可以查看geth管理API即可。

实际上我们只要看web3.js的文档就足够了,因为geth管理API也包含在其中。

除了介绍的这些子命令外,geth命令以及各种子命令都有自己的选项属性,下面简介一些geth命令使用的选项组合。

建立在以太坊主网的完整节点

目前为止,用户希望通过一种交互手段在以太坊主网上面进行一些操作,例如建立账户,转账,部署与调用智能合约。对于这些个别的用法,用户并不在意历史数据,所以我们可以快速同步到当前网络中去,命令如下:

geth --fast --cache=512 console

这条命令可以做以下三件事:

  • --fast: 使用fast模式打开geth的客户端交互控制台。fast模式下,只会下载与转账相关的区块,而不是完全下载所有的区块链历史。
  • --cache: 将数据库的内存限额调到512MB,可以显著增加同步时间,尤其是机械硬盘用户。这个参数是可选的,512的值你也可以设定高一些或者低一些,建议在512MB - 2GB之间。
  • console: 启动geth内置的可交互的JavaScript控制台,进入该控制台,你可以调用所有的web3.js的函数(它与geth自己的API)。

通过下面的命令你可以随时加入一个已经在运行的geth实例:

geth attach

建立在以太坊测试网络的完整节点

面向开发者,如果你想试试创建一个以太坊合约,你肯定需要用假的货币交易来测试你的代码,直到你将你的合约真正发布到以太坊主网上。换句话说,你不会加入以太坊主网,而是你想让你的节点加入一个测试网络,这个测试网络的环境与以太坊主网是完全一样的,只是使用的是假的以太币。加入测试网络的命令如下:

geth --testnet --fast --cache=512 console

参数fast和cache,子命令console在上面主网络都介绍过,这些内容在测试网络与主网络完全一样。下面仔细研究一下--testnet参数,它会重新配置你的geth实例。

  • 正常主网络的会使用默认地址:~/.ethereum,而测试网络使用的默认地址为:~/.ethereum/testnet。

注意这里面在使用geth attach的时候,linux需要改为geth attach

  • 不会连接到以太坊主网络上,客户端将连接到测试网络,测试网络使用的是不同的P2P向导节点,不同的网络ID以及不同的genesis状态。

源码api

经过查看,源码的api位置有很多,包括:

  • node/api.go
  • eth/api.go
  • eth/downloader/api.go
  • eth/filters/api.go
  • consensus/clique/api.go
  • contracts/chequebook/api.go
  • internal/debug/api.go
  • whisper/whisperv2/api.go
  • whisper/whisperv5/api.go
  • whisper/whisperv6/api.go
  • swarm/api/api.go
  • internal/ethapi/api.go

通过这些api文件,我们可以找到所有的web3.js(开放了一部分给geth管理API)调用的相关方法。

测试环境

  1. github下载相应版本源码,make all或者仅make geth var sender = eth.accounts[0] var receiver = "另一个节点的eth.accounts[0]" var amount = web3.toWei(9,"ether") //转9个以太币,但是是通过Wei来做 personal.unlockAccount(eth.accounts[0]) //交易前先将转账发送账户解锁 eth.sendTransaction({from:sender, to:receiver, value:amount})// 正式转账事务提交
  2. 本地找一个位置统一管理本地node(例如我的是work/node/lwbtestnode目录)
  3. geth --datadir node0(自定义节点名) account new ,通过这条命令连续创建两个node
  4. 本地采用刚刚建好的node进入测试网络,geth --datadir node0 --testnet --fast --cache=512 console,(注意,当你启动第二个节点的console的时候,会提示你端口已占用,此时要再加入一个参数--port 30001指定一个其他的端口号即可)
  5. 现在两个节点都在本地以太坊测试环境启动了console,让我们先来查看各自的一些信息并相互添加peer,admin.nodeInfo.enode命令查看当前节点的enode信息,在另一个节点的console也查出该信息,然后使用admin.addPeer("刚查到的另一个节点的enode"),然后使用命令net来查看peer数量,为1即正确。
  6. 然后再查一下当前节点的eth信息,以太币余额命令为:web3.fromWei(eth.getBalance(eth.accounts0)),wei是以太币最小的单位,如果要转换成以太币,需要使用web3.fromWei函数来处理。
  7. 经过以上操作,两个新节点已经互为peer,同时他们的余额都是0,下面让其中一个进行挖矿工作:miner.start(),可以看到随着挖矿顺利进行,另一个console中也在不断地同步(共识)区块消息。
  8. 停止挖矿,查看当前节点的余额,已经不再是0了,我这边是停在了80个以太币(这个以太币都是测试用的,不是真的以太币),另一个节点由于没有挖矿余额还是0。
  9. 下面我们来做转账操作,转账操作是在余额为80的账户里做:
  10. 此时转账事务已提交但未生效,所以我们查看两个节点的余额仍未发生变化。
  11. 下面继续挖矿,(注意,挖矿是记账的机制,但挖矿不完全为了记账,而记账必须通过挖矿,所以挖矿是记账的必要非充分条件)
  12. 当前状态下,启动挖矿的第一个区块就应该包含了我们上面的转账记录,所以不必挖矿太久即可停止。我们再看一下当前余额为86。

为什么不是80-9=71呢,是因为后来挖矿又产生了新的以太币报酬,所以余额反而增加了。

  1. 那么如何验证我们的转账是否正确呢?我们去看另一个原来余额是0的节点,检查当前余额为9,说明它作为转账接收者已成功接到了以太币。

总结

本文针对以太坊进行了初步的研究,包括背景概念,环境搭建,源码跟踪,事务处理等。而关于挖矿源码实现、共识算法,p2p网络源码以及发布自己的web3接口,都是中级篇需要研究的内容。

参考资料

  • 文中出现的各种链接。

相关文章和视频推荐

圆方圆学院汇集大批区块链名师,打造精品的区块链技术课程。 在各大平台都长期有优质免费公开课,欢迎报名收看。

公开课地址:https://ke.qq.com/course/345101?flowToken=1007371

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
学习以太坊Dapp开发
比特币设计的初衷就是要避免依赖中心化的机构,没有发行机构,也不可能操纵发行数量。既然没有中心化的信用机构,在电子货币运行的过程中,也势必需要一种机制来认可运行在区块链上的行为(包括比特币的运营,亦或是运行在区块链上的其他业务),这种机制就是共识机制。在完全去中心化的区块链上运行的比特币,采用的是PoW(Proof of Work,工作量证明),该机制完美的解决了拜占庭将军问题(存在异常的情况下仍能达成一致)。因为基础网络架构为分布式,对单独一个节点是无法控制或破坏整个网络,掌握网内51%的运算能力(非节点数)才有可能操作交易,而这个代价大概要超过270亿美元。
笔阁
2018/09/04
7890
学习以太坊Dapp开发
以太坊介绍和使用
以太坊是一个能够在区块链上实现智能合约、开源的底层系统。换言之,以太坊是可编程的区块链,它并不是给用户一系列预先设定好的操作(例如比特币交易),而是允许用户按照自己的意愿创建复杂的操作。这样一来,以太坊是就可以作为多种类型去中心化区块链应用的平台,这些应用比如包括之前很火的各种代币但并不仅限于此,我们可以做很多除了代币之外的东西,比如你可以输出一行代表自己不是外行身份的hello world,或者在上面做一个简单的计算器,总之你可以在上面实现你想要的任何功能。
fnatic
2022/07/15
37.4K0
轻松理解以太坊工作原理
以太坊使用Solidity编程语言编写智能合约。智能合约完全按照程序运行,而且防停机、防审查、防欺诈、防第三方干扰。部署智能合约或者调用其方法需要用到以太币。
前端修罗场
2022/07/29
1.8K0
轻松理解以太坊工作原理
第三课 以太坊术语说明及开发者资源列表
也称钱包,提供账户管理、挖矿、转账、智能合约的部署和执行等等功能,以太坊节点利用以太坊客户端接入到以太坊网络。 现在以太坊客户端主要有:Wallent/ist , Geth, Parity, Harmony,
辉哥
2018/08/10
7900
第三课 以太坊术语说明及开发者资源列表
对以太坊的优雅介绍
重要提示:如果您拥有价值超过1,000美元的加密货币,那么您肯定应该使用硬件钱包,而不是在交易所保留硬币。我推荐Trezor,您可以直接从他们的网站购买€89 。
天空
2018/03/13
1.8K0
对以太坊的优雅介绍
【区块链】以太坊区块链技术初探 顶
        2、【以太坊源码】以太坊源码研究系列(以太坊模拟机、挖矿、点对点网络库、节点发现、合约代码传输、加密签名等)
linapex
2019/03/26
2.9K0
【区块链】以太坊区块链技术初探
                                                    顶
以太坊DApp系列(二)---从入门到出家
以太坊自2013年V神提出后,被无数人赋予美好的愿景,甚至被称为区块链2.0,其代币发行量更是达到了全球第二,仅次于比特币,而其带来的智能合约概念颠覆了人们对区块链的理解,让区块链不仅仅是个账本,更像一个操作系统,赋予了每个节点“智能”。经过差不多半年来断断续续的学习、理解和沉淀,笔者今天想揭开以太坊DApp神秘的面纱,看看以太坊是猴还是猿。
forrestlin
2018/07/17
3.7K0
以太坊DApp系列(二)---从入门到出家
以太坊是什么 - 以太坊开发入门指南
很多同学已经跃跃欲试投入到区块链开发队伍当中来,可是又感觉无从下手,本文将基于以太坊平台,以通俗的方式介绍以太坊开发中涉及的各晦涩的概念,轻松带大家入门。 以太坊是什么 以太坊(Ethereum)是一个建立在区块链技术之上, 去中心化应用平台。它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。 对这句话不理解的同学,姑且可以理解为以太坊是区块链里的Android,它是一个开发平台,让我们就可以像基于Android Framework一样基于区块链技术写应用。 在没有以太坊之前,写区块链应用是
Tiny熊
2018/06/21
2.8K0
【手把手】如何在10分钟内搭建一个以太坊私有链?
在开发以太坊时,很多时候需要搭建一条以太坊私有链,这篇来自作者熊丽兵的文章,手把手教你10分钟内如何在Mac上进行搭建。 作者 | 熊丽兵 整理 | 科科 阅读本文前,你应该对以太坊语言有所了解,如果你还不了解,建议你先看以太坊是什么。 go-ethereum客户端安装 Go-ethereum客户端通常被称为Geth,它是个命令行界面,执行在Go上实现的完整以太坊节点。Geth得益于Go语言的多平台特性,支持在多个平台上使用(比如Windows、Linux、Mac)。Geth是以太坊协议的具体落地实现,通过
区块链大本营
2018/06/19
2.5K0
以太坊go-ethereum常见问题汇总
Mist: 相当于一个web浏览器,只不过是针对以太坊平台。 它用作GUI来显示与之交互的帐户和合约。 它还允许在图形用户界面中创建和交互合同,而无需使用命令行。 如果你不是开发人员,只是想存储ether和与Ethereum合约交互,那么你可以使用Mist程序。
程序新视界
2022/05/06
1.3K0
智能合约:介绍、geth、Ethereum Wallet
从看雪论坛换了一本《智能合约安全分析和审计指南》,看了一些智能合约相关的内容,因为我之前对于区块链的了解仅仅是只知道世界上有一种叫做比特币的东西,所以对于这些概念的理解还是比较困难的
yichen
2020/05/04
1.8K0
干货 | 以太坊工具集合,解决你的入门困难
如果你是一名区块链或以太坊新手,一开始接触以太坊生态系统中的工具和技术时很可能会像我一样一头雾水。为了让大家对以太坊的技术生态有一个整体的了解,并熟悉各部分的组合,本篇文章就将对以太坊学习中经常会遇到
区块链大本营
2018/06/19
8970
大年初二已憋不住想写代码的心!来来来教你仅用15分钟在以太坊编写一个区块链Web应用
大年初二了,程序员们该叫嚣“手痒,好想写代码”了。 今儿,我们先来聊聊区块链中炙手可热的以太坊,这之后来点实战演练。 truffle是以太坊最受欢迎的一个开发框架,今儿,咱们来学学如何用15分钟用t
区块链大本营
2018/05/10
9190
以太坊智能合约开发第二篇:理解以太坊相关概念
很多人都说比特币是区块链1.0,以太坊是区块链2.0。在以太坊平台上,可以开发各种各样的去中心化应用,这些应用构成了以太坊的整个生态。目前,以太坊是区块链世界里生态建设最好的底层公链。本篇将以通俗易懂的方式介绍以太坊开发中涉及到的相关概念,带领大家轻松入门。 以太坊 以太坊(Ethereum)是一个建立在区块链技术之上的、图灵完备的去中心化应用平台。它允许任何人在平台中通过智能合约技术开发、部署和使用去中心化应用。 > 有没有感到和ios、Android平台有点类似? 在以太坊未问世之前,写区块链的应用是
Marser
2018/06/25
1.3K0
第十三课 如何在DAPP应用实现自带钱包转账功能?
区块链是一个伟大的发明,它改变了生产关系。很多生态,有了区块链技术,可以由全公司员工的"全员合伙人"变成了全平台的”全体合伙人”了,是真正的共享经济模式。
辉哥
2018/08/10
1.8K0
第十三课 如何在DAPP应用实现自带钱包转账功能?
【刘文彬】【精解】开发一个智能合约
合约也称合同、协议,是甲乙双方参与的,制定一系列条目规范双方权利与义务的文件。智能合约是电子化的,自动执行的,去中心化的,具有不可抵赖性,本质上它是一段代码,依托于区块链技术,它可以做很多事情,基于以太坊的智能合约可以让你的区块链扩展出任何你想要的功能。
圆方圆学院
2019/03/14
4910
10分钟,前端工程师也能玩转区块链Web3.js开发
一个不想写后台的前端不是一个好全栈,前端也可以玩转区块链Web3.js开发。 老吴(北京志顶科技有限公司技术总监、区块链专家)针对前端工程师如何玩转Web3.js开发后端钱包这一主题,分享了自己开
区块链大本营
2018/06/19
3.7K0
以太坊“后偷渡时代”盗币之“拾荒攻击”
作者:Sissel@知道创宇404区块链安全研究团队 发布时间:2018/08/20
Seebug漏洞平台
2018/09/30
1.6K0
以太坊“后偷渡时代”盗币之“拾荒攻击”
基于以太坊搭建私有链
目前业界关于区块链尚无权威统一的定义。区块链简单来说,是一种链式的数据结构,区块之间按照时间顺序连接,利用密码学方式保证数据不易串改和不易伪造,并在网络所有节点进行分布式存储的共享账本。
字节流动
2020/06/02
1.5K0
基于以太坊搭建私有链
利用树莓派探索以太坊第一部分:环境搭建
在本系列文章的第一部分中,我们将在一台树莓派Pi 3 Model B上安装并运行一个以太坊区块链客户端。 毫无疑问,区块链绝对是当前的热点。之所以会这样,很大程度上是因为比特币以及其他加密货币让很多
FB客服
2018/04/17
1.4K0
利用树莓派探索以太坊第一部分:环境搭建
推荐阅读
相关推荐
学习以太坊Dapp开发
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档