truffle

truffle unbox react, unhandled rejection

旧巷老猫 提交于 2021-01-29 06:24:53
问题 I keep getting this error "Unhandled Rejection (Error): This contract object doesn't have address set yet, please set an address first. " when launching truffle unbox react, and also I don't have truffle.js, only have truffle-config.js 回答1: Late but hopefully this will answer the question as I have ran into the same issue. Assuming your metamask extension is enabled, make sure to switch your network to the localhost that is running either ganache-cli or truffle. 来源: https://stackoverflow.com

truffle+ganache-cli构建简单以太坊智能合约并编译部署

流过昼夜 提交于 2021-01-29 05:08:48
以前接触过以太坊工具链来做区块链练手项目,后来荒废了,如今再次捡起来,算是回忆和加深。 之前可能因为网络的原因,在truffle各种初始化编译合成智能合约都遇到了好多问题,如今再次尝试,发现可以很快入门。 下面来看看如何通过truffle与ganache-cli来构建以太坊合约。 以太坊工具链就不多介绍了,这里面水很深,内容很多,本文需要的主要的就是node环境,然后就是ganache服务,部署合约的时候需要这个服务。truffle是进行合约编译部署的工具,可以初始化项目,编译合约,合成合约,部署合约。 下面来看看如何做一个简单的智能合约。 1、磨刀不误砍柴工; 假定我们已经安装了node环境以及npm等工具。需要全局安装truffle,ganache-cli npm install truffle ganache-cli -g 安装好之后,我们可以看看版本信息: truffle自带solidity版本是0.5.16,web3版本是1.2.9 ganache-cli是ethereum-testrpc的替代,所以不用再安装testrpc了。 我们可以现在就启动ganache服务,它会监听localhost下的8545端口 2、牛刀小试 建立文件夹、初始化以太坊合约项目,编写智能合约。 contracts/HelloWorld.sol 合约文件需要放在contracts目录下

利用mocha进行以太坊智能合约编译部署测试

纵饮孤独 提交于 2021-01-28 09:22:40
使用智能合约编程语言solidity编写的智能合约,除了可以直接通过以太坊的工具链truffle,ganache-cli进行测试之外,还可以结合mocha进行单元测试。 mocha单元测试本质上,还是需要对合约进行编译、部署,只不过可以通过代码的形式进行直观的操作,而不是通过truffle命令来进行编译、部署、测试。 首先,构建工程,我们可以根据构建node项目的方式构建: 添加依赖:package.json "dependencies": { "ganache-cli": "^6.12.2", "mocha": "^8.2.1", "solc": "^0.4.26", "web3": "^1.3.3" } 项目结构这里简单遵循以太坊项目的结构建立一个contracts文件夹,用来保存合约。然后在contracts目录下新建HelloWorld.sol pragma solidity ^0.4.23; contract HelloWorld{ string public name; constructor(string _name) public{ name = _name; } function getName() public view returns(string){ return name; } function changeName(string _name)

【区块链】以太坊开发入门指南

狂风中的少年 提交于 2021-01-24 02:13:40
写在前面 阅读本文前,你应该大概了解区块链是什么。 以太坊是什么 以太坊(Ethereum)是一个建立在区块链技术之上, 去中心化应用平台。它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。 在没有以太坊之前,写区块链应用是这样的:拷贝一份比特币代码,然后去改底层代码如加密算法,共识机制,网络协议等等(很多山寨币就是这样,改改就出来一个新币)。 以太坊平台对底层区块链技术进行了封装,让区块链应用开发者可以直接基于以太坊平台进行开发,开发者只要专注于应用本身的开发,从而大大降低了难度。 智能合约 什么是智能合约 以太坊上运行的程序称之为智能合约 , 它是代码和数据(状态)的集合。 智能合约可以理解为在区块链上可以自动执行的(由消息驱动的)、以代码形式编写的合同(特殊的交易)。 我们知道比特币的交易是可以编程的,但是比特币脚本有很多的限制,能够编写的程序也有限, 而以太坊则更加完备(在计算机科学术语中,称它为是“图灵完备的”),让我们就像使用任何高级语言一样来编写几乎可以做任何事情的程序(智能合约)。 智能合约非常适合对信任、安全和持久性要求较高的应用场景,比如:数字货币、数字资产、投票、保险、金融应用、预测市场、产权所有权管理、物联网、点对点交易等等。 目前除数字货币之外,真正落地的应用还不多(就像移动平台刚开始出来一样),相信1到3年内,各种杀手级会慢慢出现。

开发一个简单的智能合约

泄露秘密 提交于 2021-01-09 12:12:31
一、环境搭建 搭建Truffle框架 简介:这是一个流行的以太坊开发框架,内置了智能合约编译,连接,部署等功能 Truffle框架依赖Node,需要使用npm来安装,首先需要安装node,npm会同时安装,在官网下载: Nodejs 输入命令查看当前版本 node -v 接着就可以使用npm安装Truffle框架了,使用npm安装Truffle框架,安装命令: np install -g truffle 验证Truffle安装: truffle --version Ganache 在这里我们也要用到Ganache,因为在以太坊上部署和测试智能合约都是要花费以太币的,也就是油费(Gas)。而Ganache可以在本地创建一个区块链网络来测试我们的程序,不需要消耗真实的油费。 Gannache下载路径: Ganache Ganache工作原理:为我们创建一个Ganachi虚拟的区块链网络,给我们分配10个外部账号(节点),每个账户都有100个假以太币。 Ganache界面介绍: ACCOUNTS: 账号界面,显示了自动生成所有的账号及其余额。 BLOCKS: 区块界面,显示了再本地区块链网络上挖掘的每一个区块,及其Gas成本和包含的交易。 TRANSACTIONS: 交易页面,列出了再本地区块链上发生的所有交易 CONTRACTS: 合约页面 EVENTS: 事件页面 LOGS:

区块链入门级别认知(blockchain)

↘锁芯ラ 提交于 2020-12-18 04:12:03
区块链 入门级别认知 ( blockchain ) 前言:今天参加了迅雷关于区块链的大会,学习和感受总结一下 之前的认知在:几个混迹互联网圈关于区块链 耳熟能详的 热词 “比特币” “区块链” “挖矿” ,知道的是有人从比特币或者相关虚拟货币中暴富。然后相关资源媒体不断炒概念,蹭热度公司出现了区块链项目,甚至还有区块链牙刷“边刷牙边挖矿,获得爱牙币还能兑换成牙刷,牙线等产品或者服务”。。。 通过今天在大会上的学习,首先拎清了几个事实: (1)没错,会有人从区块链上的虚拟货币有贫穷限制想象的获利。或者“炒币”的相关行为 这是“币圈”。 (2)区块链技术会使各行各业受益,那么这是“链圈”。今天讲的就是“链圈”的事 (3)不会我今天来了一趟,我就牛逼了。。。 以下从 区块链技术常识 , 技术认知 , 产品认知 三方面进一步了解 一 区块链技术常识 ( 1 )为什么使用区块链 why 能够实现:彼此不信任的情况下,不受地区所限制,可以是在世界各地,实现共享数据和传递价值 金融圈里形容这种“信任”是一种“交易对手风险(the counterparty risk)”:另一方不愿意承担交易的风险。 即这种风险就是对方不遵守契约精神的风险 区域链的优势就在于:通过一个革命性的数学、密码学和点对点网络系统彻底消除了 “ 交易对手风险( mathematics, cryptography, and

简单的区块链代码入门(python演示原理和solidity 的truffle发布)实验

烈酒焚心 提交于 2020-11-21 13:30:35
好久没回CSDN了 本文是几个教程的更新和融合,一部分通过python实现展示简单的区块链结构和过程,一部分用truffle发布简单的solidity智能合约脚本,算是区块链入门(不算吧。。) python区块链模拟脚本(本地) 环境 : 3.7 python win10 import hashlib # class Block: # def __init__(self, data, prev_hash): # self.previous_hash = prev_hash # self.data = data # # # calculate hash # @property # def hash(self): # message = hashlib.sha256() # message.update(str(self.data).encode('utf-8')) # return message.hexdigest() class Block(): """" """ def __init__(self,data,prev_hash): self.previous_hash = prev_hash self.data = data self.nonce = "" @property def hash(self): message = hashlib.sha256() message

以太坊2.0的Medalla测试网已满足启动要求

痴心易碎 提交于 2020-08-18 20:55:06
本周技术周刊包含比特币、以太坊、波卡、Filecoin四个网络的技术类新闻。 比特币网络 Bitcoin Core 0.20.1现已发布 据比特币核心开发团队消息,Bitcoin Core 0.20.1现已发布。 以太坊网络 以太坊智能合约开发工具Truffle发布5.1.37版本 以太坊智能合约开发工具Truffle宣布发布Truffle 5.1.37版本。该版本包括语法高亮,可用于Solidity 0.7.0和更好地识别已验证合约。 以太坊2.0测试网已满足最低存款要求 以太坊2.0测试网已基本达到了将约52.4万枚ETH存入智能合约的目标。根据以太坊多客户端测试网络Medalla官方数据显示,以太坊2.0测试网已满足最低存款要求,目前已有524,288枚ETH被质押至以太坊2.0测试网中。预计以太坊2.0测试网的创世块将于8月4日伦敦时间下午1点至2点(北京时间晚8点至9点)左右上线。 Vitalik:以太坊现在的协议和一年半前一样简单 在最近的节目中,就以太坊2.0是否会让以太坊的进程和协议变得更加复杂这一问题,V神回答称权益证明的缺点之一就是技术上有点复杂,因为你必须与验证节点打交道。你必须弄清楚登录和登出验证节点的过程是什么样的,在协议中还有很多类似管理的事情发生。网络安全是我们一直努力使协议变得更简单的一个重要原因。我可以肯定地认为,现在的协议和一年半前一样简单

基于区块链的供应链金融开源软件分析

大兔子大兔子 提交于 2020-08-15 04:53:52
基于区块链的供应链金融开源软件分析 一、SupplyChainFinancialPlatform 1.版权所属:王明业 2.软件类型:iOSApp 3.软件架构: 分层模式:UI层+应用层+数据层 4.前端设计:UI+Flask 大量代码用于实现UI界面,以Flask为框架实现简单的前端 5.后端设计:Python 实现Loan合约调用的封装,运行服务端,接受外部请求并返回JSON数据 6.链端设计: FISCO BCOS v2.1.0 基于腾讯微众银行开源的FISCO BCOS区块链平台,在Loan.sol合约中实现完整供应链金融平台逻辑 7.用户功能 合约初始化:根据传入的仲裁机构名称,才合约中创建一个仲裁机构实例,并将其中储存的用户地址设为创建本合约的用户地址。 添加公司: 由仲裁机构完成,申请加入的公司需要仲裁机构通过并添加 添加银行:方法同上 银行向受信公司授权信用资产 公司 A 向公司 B 转移 信用资产 银行 给予公司真实资金 受信公司向银行还款 受信公司向银行确认完成 本次事务 查询链上信息 8.分析评价 框架结构不够清晰,尤其是应用层,直接穿插于其他两层实现。 前端实现过于简单,UI界面也过于简陋。 后端调用合约的过程封装起来,运行服务端,将数据储存起来 链段几乎直接使用腾讯微众银行开源的FISCO BCOS区块链平台,框架过大

以太坊智能合约开发框架Truffle

做~自己de王妃 提交于 2020-08-11 21:32:21
前言   部署智能合约有多种方式,命令行的浏览器的渠道都有,但往往跟我们程序员的风格不太相符,因为我们习惯了在IDE里写了代码然后打包运行看效果。   虽然现在IDE中已经存在了Solidity插件,可以编写智能合约,但是部署智能合约却要另走他路,没办法进行一个快捷的部署与测试。   如果团队管理的区块节点多、合约多,那得哭晕在厕所。   Truffle是一个世界级的智能合约开发框架,专门为智能合约而生。 安装 安装truffle sudo cnpm install -g truffle 查看版本 truffle version 搭建项目 创建项目目录 mkdir dapp cd dapp / 初始化空项目 truffle init 你也可以不创建空项目 而是创建一个带有模板的项目 如下 初始化模板项目 truffle unbox webpack 官方模板列表:https://www.trufflesuite.com/boxes 配置区块节点 truffle-config.js文件中networks代码段 用来配置区块链节点 示例中有这么一段 development: { host: " 127.0.0.1 " , // Localhost (default: none) port: 8545 , // Standard Ethereum port (default: none)