最近开始学习智能合约了,真叫人害怕

智能合约学习笔记一 、——{Solidity语言详解——(2)智能合约运行原理} 智能合约运行原理 阅读详情

2020.6.20更新

Error: Error: Could not find artifacts for contract xxx from any sources

解决方案:需要合约的名字和sol文件名字一样。

----------------------------------------------------------------------------------------------------------------------

经过一晚上结合各个教程,终于

1. 打开终端,输入testrpc,会显示10个账户和私钥,监听端口8545

2.新开终端,新建文件夹并打开

$ mkdir test
$ cd test

3.下载完整的demo(旧教程里的truffle init命令已经不能下载完整的)(20200620可以呀,只用init就行)

$ truffle unbox tutorialtoken
$ truffle unbox metacoin

4.修改truffle.js文件

    module.exports = {  
        networks: {  
            development: {  
                host: "localhost",  
                port: 8545,  
                network_id: "*" // 匹配任何network id  
             }  

 这里编写一个简单的智能合约SimpleStorage,保存为.sol后缀,然后放入contracts文件夹中。

(这里已经把合约作了修改以适应0.5版本)

pragma solidity ^0.5.0;
 contract SimpleStorage {
 uint storedData;

 function set(uint x) public{
 storedData = x;
 } 

function get() view public returns (uint) {
 return storedData;
 } 
}

编译合约:

$ truffle compile

在编译以后,目录下会多出一个build文件夹。

5.进入migrations文件夹,编辑2_deploy_contracts文件,在最后一行插入"deployer.deploy(合约名)",如下所示:

const ConvertLib = artifacts.require("ConvertLib");
const MetaCoin = artifacts.require("MetaCoin");

module.exports = function(deployer) {
  deployer.deploy(ConvertLib);
  deployer.link(ConvertLib, MetaCoin);
  deployer.deploy(MetaCoin);
  deployer.deploy(SimpleStorage);
};

这一行是增加的(20200620还要增加const那一行)

const。。。。。  

deployer.deploy(SimpleStorage);

 部署合约:

$ truffle migrate

6.查看效果

$ npm run dev


 -------------------------------------
       Local: http://localhost:3000
    External: http://192.168.1.13:3000
 -------------------------------------
          UI: http://localhost:3001
 UI External: http://localhost:3001
 --------------------------------------------------------------

此时,localhost3000和3001均有所显示

 

============================================================================================

第一步:安装nodejs 和 npm,有两种比较常见的方法.

在nodejs官网下载nodejs-v6.10.x编译好的压缩包(tar.gz), 里面自带了npm

解压到/usr/local/

ln -s /usr/local/node-v10.15.3-linux-x64/bin/node /usr/local/bin/node

ln -s /usr/local/node-v10.15.3-linux-x64/bin/npm /usr/local/bin/npm

第二步:安装truffle

npm install -g truffle

第三步:安装testrpc

npm install -g ethereumjs-testrpc

sudo ln -s /usr/local/node-v10.15.3-linux-x64/bin/testrpc /usr/local/bin/testrpc

第一步骤的nodejs和npm以前就安装过了,这里等于只是执行了truffle和testrpc的安装,灰色的命令我都失败了,不过目前看来建立软连接好像也不是必要的?先不管了希望不会被打脸。。。

truffle testrpc使用方法

在testrpc以太坊测试环境部署智能合约

以太坊开发--truffle和testrpc使用介绍

==========================================================================================

在用truffle编译智能合约时,报错 TypeError: Data location must be "memory" for return parameter in function, but none was given.这是由于solidity 0.5.0版本的更新导致的。解决方案如下:

原来: function say() public pure returns (string) {

修改后: function say() public pure returns (string memory) {

2018最新Truffle 错误解决方法

因为truffle的更新,教程有点过时了,一直找不到一些文件,发现是命令改了。

Metacoin合约不存在

解决方法:按照网上的教程输入truffle init后并不会生成metacoin合约,在contract文件夹下仅有migrate合约。这是由于最新版本的truffle已经将init命令做了更改,想要生成metacoin合约需要输入turffle unbox metacoin。所有tuffle提供的demo都可以通过unbox方式解压下载。

网易 广州 梦幻西游端游 客户端社招笔试题 2024 4道算法题,时间2小时,牛客网笔试注:采用OJ模式,需要自己处理输入、输出。 阅读详情

相关推荐

安装破解IAR EWARM 8.2,提供注册机

IAR Embedded Workbench for ARM(IAR for ARM)是一款微处理器的集成开发环境软件,该集成开发环境中包含了IAR的C/C++编译器、 汇编工具、链接器、库管理器、文本编辑器、工程管理器和C-SPY调试器,支持ARM,AVR,MSP430等芯片。   一、安装 双击运行安装程序,点击Install IAR Embedded Workbench for ARM...

睿思派克 4万+

智能合约学习(持续更新中)

什么是智能合约 智能合约的特点 在线学习资源整合 智能合约学习笔记 智能合约(Smart Contract)是上世纪90年代由密码学家尼克·萨博提出的理念,由于当时缺乏可信的执行环境,智能合约没有被应用和发展,直到以太坊的出现,才让智能合约得以“复活”。智能合约是以太坊应用程序的基石。 它们是存储在区块链上的计算机程序,让我们能够将传统合约转换成对应的数字化合约。

m0_57291352的博客 1818

机器人控制入门:用SAC算法让机械臂学会抓取(PyBullet仿真教程)

本文详细介绍了如何使用SAC算法在PyBullet仿真环境中训练机械臂完成抓取任务。通过强化学习中的软Actor-Critic(SAC)算法,结合熵最大化机制和双Q网络架构,有效解决了机械臂控制中的探索难题。教程包含环境搭建、算法原理、状态空间设计、奖励函数优化等核心内容,并提供了实用的训练技巧和参数调优指南。

weixin_29091105的博客 363

智能合约语言对比:Solidity | Vyper | Move | Rust

Solidity 更容易学习,并且有更多用于 Solidity 的开发人员工具。1.容易上手:Solidity这门语言很好学,因为它很像我们常见的JavaScript,所以如果你懂JavaScript,学Solidity就比较轻松,因为它们的语法挺像的。2.工具多:Solidity有很多好用的工具来帮助开发者,比如OpenZeppelin,这是一个平台,提供了一堆开源的库,能让智能合约更安全。

加密社的博客 2649

(篇八)C语言在母串删子串、输入位置截取子串

文章目录一、字符串二、删除指定的字符三、从母串中截取子串四、输入位置截取子串 本篇主要介绍C语言字符串中的相关操作,然后分析两个C语言实例——在母串中指定删除子串、在母串中截取子串 一、字符串 了解C 语言的都知道,C语言中没有字符串类型,所以C语言是用字符串常量、字符指针、字符数组来表示字符串。这些字符串都是以 NULL、’\0’或者ASCII==0来结尾。说白了就是一个个字符组成一串有序序列,...

Viewinfinitely的博客 1512

手把手教你解决Windows 10网络驱动器无法访问问题(附详细排查步骤)

本文详细指导Windows 10用户解决网络驱动器无法访问的常见问题。通过从现象快速定位到系统排查,提供了从检查网络连通性、修复凭据权限到调整高级设置的完整步骤,特别是针对“找不到网络路径”等错误,帮助用户高效恢复对共享资源的访问。

weixin_29233857的博客 518

【线上课程】智能合约编写实战|50小时学会编写智能合约

根据德勤(全球审计四巨头之一)在2017年末发布的数据统计,目前在GitHub平台上创建了超过86000个区块链项目,而2015年只有15000个项目,仅2017年就创建了近25000个新的区块链项目。 如果按照每个项目需要10个研发人员计算,目前从事区块链开发的人员规模就达到86万人,2017年新增25万人的区块链人才缺口。在国内,越来越多的创业项目在向区块链方向发展,而区块链的技术革新必然带...

weixin_34061555的博客 252

Crossbar RRAM技术解析:从1TnR架构到存储革命

非易失性存储器(NVM)是数据存储的核心技术,其原理基于物理状态的稳定改变以实现数据持久化。阻变存储器(RRAM)作为一种新兴NVM,利用导电细丝在介质层中的形成与断裂实现数据存储,具有高速、低功耗和结构简单的优势。在工程实践中,RRAM面临潜行路径电流等挑战,而Crossbar提出的1TnR架构通过引入共享晶体管有效解决了这一问题,在保证性能的同时提升了集成密度。该技术与CMOS工艺兼容,支持后端集成与多层堆叠,为高密度存储和嵌入式应用提供了新的解决方案。结合当前行业对高能效、高密度存储的需求,RRAM在

weixin_42523104的博客 321

什么是智能合约,如何熟悉智能合约

智能合约可以被看作是一段以编程语言编写的计算机代码,它被部署在区块链上,并能够自动执行其中定义的合约规则。自动化执行:智能合约能够自动执行合约条款,无需人为干预,减少了执行过程中的人为错误和风险。去中心化:智能合约部署在区块链上,不依赖于中心化的管理机构,实现了去中心化的合约执行方式。不可篡改性:一旦部署在区块链上的智能合约被确认,其代码和执行过程都无法篡改,确保了合约的可信度和不可逆性。透明公开:智能合约的代码和执行记录都是公开的,任何人都可以查看和验证,增强了合约的透明度和可信度。

wsl3465205046的博客 1709

保姆级教程:在Linux上用IGH EtherCAT主站搞定从站时钟同步(附sync_datagram报文详解)

本文详细介绍了在Linux系统上使用IGH EtherCAT主站实现从站时钟同步的保姆级教程,重点解析了sync_datagram报文的结构和工作原理。通过实战案例和代码示例,帮助开发者掌握微秒级同步精度的实现方法,适用于工业自动化领域的高精度设备协同控制。

weixin_30733003的博客 261

2、硬件工程师笔试面试汇总(2025版本)

本文摘要:文章系统梳理了硬件工程师笔试面试中的电子元器件知识要点,涵盖电阻、电容、电感、二极管、三极管、MOS管等器件的工作原理、选型要点和应用场景。详细解析了UART、I2C、SPI等通信协议的特点及实现方式,并探讨了电源管理、信号处理、PCB设计等核心问题。针对常见电路如放大电路、滤波电路、逻辑电路等提供了深入分析,同时介绍了示波器使用、单片机系统设计等实用技能。文章还包含器件封装、电平转换、时序分析等工程实践内容,并附有相关真题解析和仿真实验指导,为硬件工程师提供全面的技术参考。

XU157303764的博客 9011

【自学笔记】智能合约基础知识点总览-持续更新

智能合约是一种自动执行合约条款的计算机程序,它运行在区块链上,能够控制数字资产,并在满足特定条件时自动执行操作。提示:这里对文章进行总结:例如:以上就是今天要讲的内容,自学记录智能合约基础知识点总览。

2301_78806917的博客 1097

HAL STM32+EC11编码器实现增减调节及单击、双击、长按功能

HAL STM32+EC11编码器实现增减调节及单击、双击、长按功能

perseverance51博客 4236

【第一章】智能合约概述学习(仅供学习)

智能合约学习

qq_56877291的博客 719

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

智能合约学习(1)

1.transation 交易 2.哈希校验:是否被串改。 3.pow 工作量证明 4.block 威胁 5.私钥转账签名 https://anders.com/blockchain/coinbase.html 以太坊账号通用的原因: 普通注册存在公司的服务器中。 以太坊账户只有一个,私钥存在电脑本地,可以通用。 #30秒等待的详细流程 translation提交给一个node(如何修改node,...

wuhuimin521的博客 731

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

智能合约技术学习

智能合约技术学习 https://solidity.liyuechun.org/ http://www.tryblockchain.org/   什么是智能合约(Smart Contract)? http://www.liyuechun.org/2017/09/18/smart-contract/   如何编写智能合约(Smart Contract)?(I) http://www....

jiangzhanweiabc的博客 826

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

学习区块链(三)--HelloWorld智能合约

truffle

一个真实、有温度的无名小卒 3257

以太坊智能合约编程之菜鸟教程

手把手带你走上智能合约编程之路 译注:原文首发于ConsenSys开发者博客,原作者为Eva以及ConsenSys的开发团队。如果您想要获取更多及时信息,可以访问ConsenSys首页点击左下角Newsletter订阅邮件。本文的翻译获得了ConsenSys创始人Lubin先生的授权。 有些人说以太坊太难对付,于是我们(译注:指Consensys, 下同)写了这篇文章来帮助大家学习如何利用以太

陈建慧程序人生 9万+

极简入门:什么是智能合约?

↑↑ 点击上方关注「陈树义」↑↑这是陈树义的第031期分享作者 l 陈树义来源 l 陈树义(ID:Spark-tree)转载请联系授权(ID:Spark-tree)在...

陈树义 354

【4】私有链发币

实现源码: /************************************* * web3.js version : 1.0.0-beta.35 * * */ // require filestream to read solidity file const fs=require("fs") const Web3=require("web3") const solc=r...

dwjpeng2的专栏 1543

一小时:第一个以太坊智能合约全流程

现代社会,是高流动性的时代,一切需要效率,快,更快。 从对以太坊一无所知,到开发第一个智能合约上线部署,最快需要多久?一个小时! 不了解区块链和智能合约,却又面临转型、转行、面试、临时任务,需要一个极简的马上可以解决关键环节的教程。当天操作学会,再阅读一些辅助资料,第二天可以跟老板、领导、同事、客户、面试官侃侃而言,“我做过”。 以太坊涉及的东西很多:白皮书,黄皮书,区块链,共识机制,挖矿,Merkle树,多种客户端,主网,测试网,私链,钱包,ERC20,DeFi,Solidity,Vyer… … 都看一遍

极短路径官方博客 760

快速学习-智能合约概述

智能合约概述 Solidity中合约 一组代码(合约的函数 )和数据(合约的状态 ),它们位于以太坊区块链的一个特定地址上 代码行 uint storedData; 声明一个类型为 uint (256位无符号整数)的状态变量,叫做 storedData 函数 set 和 get 可以用来变更或取出变量的值 合约结构 状态变量(State Variables)作为合约状态的一部分,值会永久保存...

逍遥云恋 649

手把手教你搭建智能合约测试环境、开发、编译、部署以及如何通过JS调用合约方法

如何编写智能合约(Smart Contract)?(I)完整视频教程 https://v.qq.com/x/page/h0552ba9k8h.html 学习目标 了解智能合约 简单环境搭建 能够利用solidity编写Hello World合约 合约部署 和合约互动 使用solidity语言撰写智能合约Ethereum上的智能合约需要使用solidity语言来撰写。虽然还有其他能用来撰写智能合约的语

孔壹学院 7895

一步一步学区块链(5)智能合约

想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】 链客,有问必答! 以太坊区块链技术2.0版本对于行业应用的开发最主要特性就是实现了智能合约,本质上讲智能合约是由事件驱动的、 具有状态的、运行在一个复制的、分享的账本之上的、且能够保管账本上资产的程序。 它是一个可以被信任,总是按照事先的规则执行的操作。但与此同时,智能合约部署完之后无法修改也会带来其他问题,这是另一个议题。下面直...

weixin_44172023的博客 377

如何编写一个简单的智能合约(Smart Contract)

使用solidity语言编写智能合约 Ethereum 上的智能合约需要使用 solidity 语言编写。虽然还有其他能用来撰写智能合约的语言如 Serpent (类 Python )、lll (类 Fortran),但是目前看到所有公开的智能合约都是使用solidity撰写。 宣传上说,solidity是一种类JavaScript的语言,而且围绕solidity的各种开发工具链,都是使用属于...

半 岛 码 农 的 博 客 1万+

TypeError: Data location must be “memory“ for parameter in function, but none was given.

问题回顾:在编写完智能合约之后,通过命令行的形式编译智能合约时出现的问题。 1. 具体合约代码(错误写法): pragma solidity >=0.4.21 <0.7.0; contract Simple { string name; uint age; //定义事件 event Instructor(string name,uint age); f...

zqq_2016的博客 6304
上一篇: 安全两方计算
下一篇: 在ubuntu执行truffle init出现错误
constanting1996
博客等级 码龄8年 1粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值