以太坊

FISCO-BCOS区块链开源平台部署步骤(3)

风格不统一 提交于 2021-02-16 19:23:30
第三章 部署系统合约 cd /mydata/FISCO-BCOS/systemcontractv2 #初始化npm包,仅运行一次即可 cnpm i # 修改其中的 proxy变量,更改期中的IP和端口对应fisco-bcos运行的IP和端口,端口见config.json中rpcport vim config.js #开始部署 node deploy.js #在输出的 SystemProxy的合约地址配置到config.json中的 systemproxyaddress "systemproxyaddress":"XXX" #重启节点 cd /mydata/nodedata-1/ chmod +x *.sh ./stop.sh ./start.sh #执行此步骤后不断刷出打包信息,表明重启成功 第四章 创建普通节点 所有节点的genesis.json与根证书ca.crt必须保持一致 4.1 初始化节点 # 假设在nodedata-2目录中进行操作 mkdir -p /mydata/nodedata-2/data/ #存放节点的各种文件 mkdir -p /mydata/nodedata-2/log/ #存放日志 mkdir -p /mydata/nodedata-2/keystore/ #存放账户秘钥 #拷贝创世节点相关文件 cd /mydata/nodedata-1/ cp

智能合约开发以太坊DApp应用程序示例

你离开我真会死。 提交于 2021-02-11 06:17:35
智能合约开发是以太坊开发的核心,学习编写智能合约主要是搭建以太坊开发环境和solidity开发智能合约。不使用任何以太坊Dapp框架,直接使用solidity在ganache下开发智能合约。 让我们构建一个简单的"Hello World!" 应用程序, 这是一个投票应用程序。 该应用程序非常简单,它所做的只是初始化一组候选人,让任何人投票给候选人,并显示每个候选人收到的总票数。 我有意避免使用任何DAPP框架构建这个应用程序,因为框架抽象掉很多细节,你不了解系统的内部。此外,当你使用框架时,将对框架所做的繁重工作有更多的体会! 我们的目标是: 建立开发环境。 学习编写智能合约 1. 设置开发环境 我们使用一个模拟的内存区块链(ganache)代替真实的区块链在进行开发。在本教程的2章,我们将与真实的区块链交互。下面是安装ganache、web3js的步骤,然后在linux上启动一个测试链。在macOS上安装过程也是一样的。 你可以看到ganache-cli自动创建了10个测试账号,每个账号预分配了100(虚构的)ethers 如果需要更详细的开发环境安装教程,可以参考如下文章: windows以太坊开发环境搭建 linux/ubuntu以太坊开发环境搭建 2.简单的投票合约 我们将使用solidity编程语言来编写我们的合约。如果您熟悉面向对象编程

开发基于以太坊智能合约的DApp

自闭症网瘾萝莉.ら 提交于 2021-02-10 13:26:54
最近要找个H5的前端写个简单的DApp,聊过几个H5的工程师,都被跟以太坊交互的部分吓住了。虽然网上有N多的教程,但是对于H5工程师来说,还是有些困难。分析其原因,在于不了解ganache-cli(原来叫testrpc)/web3/以太坊节点/metamask之间的架构关系。 梳理一下架构关系: web3.js与以太坊通信是通过rpc的方式实现的。 以太坊节点本来提供了rpc的访问方式,但是因为以太坊节点的地址不确定,并且DApp需要访问钱包,所以用web3.js直接访问以太坊节点的rpc服务是不现实的。 ganache-cli模拟了一个以太坊的测试节点并提供对外的rpc访问方式(就是例子里经常说的 http://localhost:7545或者http://localhost:8545)。同时在其中内置了M个以太坊帐号,用于测试。 MetaMask是一个以太坊的网络钱包插件,它也提供了web3的访问方式。而且可以通过这个插件指定后面的以太坊节点是什么。因为MetaMask是个钱包插件,所以解决了DApp中的支付问题。所以现在的DApp都依赖它。 有一个 以太坊教程 ,是在线学习的,大家可以去看看,如果自己本机上搞,开发DApp的基本过程都是一样的如下: 1、安装NodeJS 2、安装truffle:一个开发DApp的开发框架 nmp install -g truffle 3

以太坊智能合约示例

半世苍凉 提交于 2021-02-10 05:17:43
目前的智能合约基本都是运行在以太坊上。本文将通过一个简单而具体的智能合约实例来帮助大家理解智能合约的编写、部署与调用。这个例子很简单,但通过它你可以了解开发一个以太坊的智能合约的完整过程。 在之后的教程中,我们将结合不同的场景案例,分别举出不同的例子例如投票、众筹、拍卖、ERC20/ERC721代币发行等,并实现相应的solidity示例代码。我们希望你能在实践中逐步理解学习智能合约的开发语言solidity,理解智能合约的运行原理,并掌握必要的以太坊智能合约编程技能。 如果你希望马上开始学习以太坊DApp开发,可以访问汇智网提供的出色的在线互动教程: 以太坊DApp实战开发入门 去中心化电商DApp实战开发 开发语言和开发环境选择 目前智能合约最受欢迎的编程语言为Solidity,但是并不只有Solidity。作为初学者,编写Solidity代码,我们可以使用Remix,它是一个基于浏览器的Soldity IDE,网址为: http://remix.ethereum.org/ 。Remix支持编写、测试和部署智能合约。 编写代码 学一门语言的第一个程序毋庸置疑都是HelloWorld,那么我们就来写一个HelloWorld的智能合约吧。合约代码如下。 pragma solidity ^0.4.21; contract HelloWorld { string hello =

以太坊智能合约Demo

巧了我就是萌 提交于 2021-02-09 09:50:30
智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供一个官方实战demo示例快速入门,用demo例子深入浅出智能合约开发,体会以太坊构建去中心化可信交易技术魅力。智能合约其实是“执行合约条款的计算机交易协议”。区块链上的所有用户都可以看到基于区块链的智能合约。 维基上说智能合约(英语:Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易。这些交易可追踪且不可逆转。智能合约概念于1994年由Nick Szabo首次提出。智能合同的目的是提供优于传统合同方法的安全,并减少与合同相关的其他交易成本。 由于区块链上的所有用户都可以看到基于区块链的智能合约。这也会导致包括安全漏洞在内的所有漏洞都可见,并且可能无法迅速修复。这样的攻击难以迅速解决。 插曲,2016年6月The DAOEther的漏洞造成损失5000万美元,而开发者试图达成共识的解决方案。DAO的程序在黑客删除资金之前有一段时间的延迟。以太坊软件的一个硬分叉在时限到期之前完成了攻击者的资金回收工作。以太坊智能合约中的问题包括合约编程Solidity、编译器错误、以太坊虚拟机错误、对区块链网络的攻击、程序错误的不变性以及其他尚无文档记录的攻击。 部署智能合约的经典案例有: 以太坊在其区块链上实施了一种近乎图灵完备的语言

「教程」用Solidity开始编写你的第一个智能合约

匆匆过客 提交于 2021-01-10 21:25:56
本文翻译自: Gerald Nash《Build Your First Smart Contract》 原文地址:https://medium.com/crypto-currently/build-your-first-smart-contract-fc36a8ff50ca 由微信公众号“Wancloud万云”翻译并发布于公众号上。 这篇文章,我们将用使用编程语言Solidity教大家编写一个简单的counter智能合约。Solidity这种语言与JavaScript相似。 开始之前,您需要安装的工具: 1. Ganache :这将是我们用来创建仅在我们的计算机上运行的私有区块链的工具。链接:http://truffleframework.com/ganache/ 2. MyEtherWallet副本 ,在这种情况下,URL托管的网站将不起作用。链接:https://github.com/kvhnuke/etherwallet/releases 注意:下载的版本是etherwallet-v3.xx.x.x.zip。 安装完成后,我们开始访问https://remix.ethereum.org/,打开这个网址后显示如下: 这是Remix,一个Solidity语言的在线编译器,我们将用此编译器来编写智能合约代码。 第一次访问该页面时,我们需要将本文编辑器预加载的代码删除

以太坊区块链说的gas/gas price/gas cost是什么?

眉间皱痕 提交于 2020-12-24 10:39:04
https://www.reddit.com/r/ethereum/comments/271qdz/can_someone_explain_the_concept_of_gas_in_ethereum/ https://www.reddit.com/r/ethereum/comments/3fnpr1/can_someone_possibly_explain_the_concept_of/ https://www.reddit.com/r/ethereum/comments/49gol3/can_ether_be_used_as_a_currency_eli5_ether_gas/ Operation Name Gas Cost Remark step 1 default amount per execution cycle stop 0 free suicide 0 free sha3 20 sload 20 get from permanent storage sstore 100 put into permanent storage balance 20 create 100 contract creation call 20 initiating a read-only call memory 1 every additional word when expanding

web3.eth.getBlock

百般思念 提交于 2020-04-18 06:07:11
如果你希望马上开始学习以太坊DApp开发,可以访问汇智网提供的出色的在线互动教程: 以太坊DApp实战入门教程 以太坊去中心化电商应用开发实战 返回块号或区块哈希值所对应的区块 调用: web3.eth.getBlock(blockHashOrBlockNumber [, returnTransactionObjects] [, callback]) 参数: blockHashOrBlockNumber : Number|String -(可选)如果未传递参数,默认使用web3.eth.defaultBlock定义的块,否则使用指定区块。 returnTransactionObjects : Boolean -(可选)默认值为false。true会将区块包含的所有交易作为对象返回。否则只返回交易的哈希。 callback : Function - 回调函数,用于支持异步的方式执行7。 返回值 - 区块对象: Number - 区块号。当这个区块处于pending将会返回null。 hash - 字符串,区块的哈希串。当这个区块处于pending将会返回null。 parentHash - 字符串,32字节的父区块的哈希值。 nonce - 字符串,8字节。POW生成的哈希。当这个区块处于pending将会返回null。 sha3Uncles - 字符串,32字节。叔区块的哈希值。

go开发以太坊智能合约-geth

旧街凉风 提交于 2020-03-11 11:51:37
go-ethereum客户端通常被称为geth,它是个命令行界面,执行在Go上实现的完整以太坊节点。通过安装和运行geth,可以参与到以太坊前台实时网络并进行以下操作: 挖掘真的以太币 在不同地址间转移资金 创建合约,发送交易 探索区块历史 及很多其他 链接: 网站: http://ethereum.github.io/go-ethereum/ Github: https://github.com/ethereum/go-ethereum 维基百科: https://github.com/ethereum/go-ethereum/wiki/geth Gitter: https://gitter.im/ethereum/go-ethereum 如果你希望 高效的 学习以太坊DApp开发,可以访问汇智网提供的 最热门 在线互动教程: 适合区块链新手的以太坊DApp实战入门教程 区块链+IPFS+Node.js+MongoDB+Express去中心化以太坊电商应用开发实战 其他更多内容也可以访问 这个以太坊博客 。 来源: oschina 链接: https://my.oschina.net/u/3837977/blog/1805453

在centos7下安装以太坊的go-ethereum-1.4.12版本失败

守給你的承諾、 提交于 2020-03-11 11:36:46
今天在centos7下安装以太坊的go-ethereum-1.4.12版本失败,在网上查找资料,以及问了大牛,也不知何解,然后到https://github.com/ethereum/go-ethereum/releases下载最新版的1.8.1版本后,安装成功了。 安装1.4.12下敲make命令后,报的错误如下: 换了1.8.1版本安装成功,提示如下: 来源: oschina 链接: https://my.oschina.net/u/3771618/blog/1625953