热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

012基于以太访的本地文件hash存储查找Dapp实例(合约安装部署)

文章是我一边学习区块链技术,一边记录下来的内容,所有内容都经过测试,其实是我为了给自己留的参考文档,呵呵下面开始进行一个Dapp的开发,请使用root用户操作。1、学习总结要开发一个

文章是我一边学习区块链技术,一边记录下来的内容,所有内容都经过测试,其实是我为了给自己留的参考文档,呵呵大笑

下面开始进行一个Dapp的开发,请使用root用户操作。

1、学习总结

      要开发一个Dapp需要做的准备工作已经基本完成,那么下面说一下都需要哪些内容,然后就开始开发。

         1.1、开发架构


Demo架构图

                   Web Frontend:业务展现层,采用基于可以访问以太访私有链的js框架web3开发的web应用。

                   FS :文件存放位置,本地文件存放磁盘空间。

                   NodeJs Server:采用nodejs做为服务器后台。

Ethereum-Blockchain:以太访区块链。                  

                    

        1.2 、搭建私有链

  可以有很多种搭建私有链的方式:go-ethereum私有链、基于docker的go-ethereum私有链、mist自带的私有链、testrpc私有链测试环境、

ganache可视化私有链。

我们这个案例里面使用基于ganache可视化私有链进行Dapp进行开发。

ganache安装:http://mp.blog.csdn.net/postedit/79118556

1.3、web前端框架

以太访提供了很多语言来支持Dapp的开发,这个案例里使用基于js的web3客户端进行业务层的开发,

demo是基于nodejs进行开发,因此需要安装nodejs才能运行。

nodejs安装:http://mp.blog.csdn.net/postedit/79029044

1.4、撰写合约Solidity工具Atom

基于Atom进行智能合约进行编写。

Atom安装:http://mp.blog.csdn.net/postedit/79039550

1.5、合约编译安装部署工具truffle

使用truffle对智能合约进行安装部署。

truffle安装:http://mp.blog.csdn.net/postedit/79029328

2、编译部署合约

 环境准备好了,可以开发啦。

2.1、创建Dapp项目工程

 编译以后多出build目录

    mkdir filehash
cd filehash
truffle init



 2.2、编写合约

在目录/home/jack/demo/filehash下执行以下启动Atom

atom ./

 

       2.3、编译合约

在目录/home/jack/demo/filehash下执行

truffle compile

2.4、启动ganache,创建私有链



2.5、配置truffle连接文件

在目录/home/jack/demo/filehash下执行

vi truffle.js 

 以下是truffle官网提供的配置,修改development为local_dev,修改8545为6666,修改*为8888

module.exports = {
networks: {
development: {
host: "127.0.0.1",
port: 8545,
network_id: "*" // Match any network id
}
}
};


2.6、配置编译文件

创建编译文件,truffle会默认找配置文件中的development网络进行安装部署,修改后要制定安装部署网络local_dev。

在目录/home/jack/demo/filehash下执行

vi 2_deploy_contracts.js


 2.7、智能合约部署

进入 /home/jack/demo/filehash目录下,执行以下命令:

truffle migrate --network local_dev

获取合约部署地址: Proof: 0x345ca3e014aaf5dca488057592ee47305d9b3e10

用于后面应用代码


         












推荐阅读
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • uniapp开发H5解决跨域问题的两种代理方法
    本文介绍了uniapp开发H5解决跨域问题的两种代理方法,分别是在manifest.json文件和vue.config.js文件中设置代理。通过设置代理根域名和配置路径别名,可以实现H5页面的跨域访问。同时还介绍了如何开启内网穿透,让外网的人可以访问到本地调试的H5页面。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 一、路由首先需要配置路由,就是点击good组件进入goodDetail组件配置路由如下{path:goodDetail,component:goodDetail}同时在good组件中写入如下点击事件,路由中加入 ... [详细]
  • Smrti Lab 和 ArkStream Demo Day 10 个参展新项目一览
    元宇宙、跨链桥、NFT交易市场、期权产品服务商、Layer1、DID、Web3基础设施等领域的被投项目参与路演。 ... [详细]
author-avatar
vicj_iao
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有