solidity语言介绍以及开发环境准备   Solidity 是一门面向合约的.为实现智能合约而创建的高级编程语言.这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行. Solidity 是静态类型语言,支持继承.库和复杂的用户定义类型等特性. 它的语法接近于Javascript,是一种面向对象的语言.但作为一种真正意义上运行在网络上的去中心合约,它又有很多的不同,下面列举一些: 以太坊底层是基于帐户,而非UTXO的,所以有…
初遇NFT-IPFS 本次学习如何使用Hardhat框架制作可预售的NFT并利用IPFS存储元数据. NFT简介 NFT全称Non-fungible Token(即非同质化通证).不可分割性(目前有碎片化协议暂且不谈)且独一无二.这有点对应现实资产比如古董.艺术品.即使是同一批厂家或者艺术家创作也难保证一模一样. NFT 目前主要用于艺术品.域名.虚拟资产.游戏.代表性的就是CryptoKitties.CryptoPunk.NBA Top Shot等 NFT的价值就是仁者见仁智者见智了,稀有程度…
原文地址:石匠的blog Truffle的环境安装在前文已经整理,这次用Solidity在Truffle写一个HelloWorld以太坊智能合约,并在testrpc上进行测试.当前的软件版本信息如下: Truffle v4.1.11 (core: 4.1.11) Solidity v0.4.24 (solc-js) 项目创建 打开Mac的terminal终端,创建一个新目录,并truffle项目初始化. > mkdir HelloWorld > cd HelloWorld > truff…
工具简介 Slither 是一个 python3 开发,用于检测智能合约(solidity)漏洞的静态分析框架. Slither 的 Github 地址:https://github.com/crytic/slither 工具安装 它有三种安装方式(pip, git, docker),我们为了方便,采用docker进行安装.因为工具包 Ethereum Security Toolbox 中包括了 Slither 工具,所以我们直接通过安装工具包 Ethereum Security Toolbox…
第一节 简介 欢迎和我们一起来用以太坊开发构建一个去中心化电商DApp!我们将用区块链.星际文件系统(IPFS).Node.js和MongoDB来构建电商平台类似淘宝的在线电商应用,卖家可以自由地出售商品,买家可以自由地购物: 去中心化: 和淘宝或eBay不同,我们把所有的商业逻辑和核心数据都放在以太坊区块链上,这使 得它成为一个完全去中心化的应用.和淘宝这样中心化的电商平台相比,一个去中心化的P2P电商应用显然有其独特的价值--至少你不用担心被平台封账户了. IPFS: 在以太坊上存储用于商品…
智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供一个官方实战示例快速入门,用例子深入浅出智能合约开发,体会以太坊构建去中心化可信交易技术魅力.智能合约其实是"执行合约条款的计算机交易协议".区块链上的所有用户都可以看到基于区块链的智能合约. 维基上说智能合约(英语:Smart contract )是一种旨在以信息化方式传播.验证或执行合同的计算机协议.智能合约允许在没有第三方的情况下进行可信交易.这些交易可追踪且不可逆转.智能合约概念于1994年由Nick S…
以太坊Dapp开发快速入门 以太坊为开源社区,虽然设计东西都很优秀,但是组件十分的杂乱,因此下面首先简单介绍下以太坊的一些常用组件以及各种工具介绍 Geth Geth是由以太坊基金会提供的官方客户端软件,用Go编程语言编写的,也可以理解为以太坊的一个私有节点,在我们开发测试当中起到必不可少的作用,类似于这样的节点还有很多 ganache 一个图形化的以太坊私有节点,可以通过该节点看到一些调试的信息,提供了多少个账号,生成的数据块,事物,以及日志log 该软件需要运行在win10 以上版本 sol…
基于浏览器的Solidity 如果你只是想尝试一个使用Solidity的小合约,你不需要安装任何东西,只要访问 基于浏览器的Solidity http://remix.ethereum.org/. 如果你想离线使用,你可以保存页面到本地,或者从 http://github.com/chriseth/browser-solidity 克隆一个. NPM / node.js 这可能安装Solidity到本地最轻便最省事的方法. 在基于浏览器的Solidity上,Emscripten提供了一个跨平台J…
安装Solidity 基于浏览器的Solidity 如果你只是想尝试一个使用Solidity的小合约,你不需要安装任何东西,只要访问基于浏览器的Solidity. 如果你想离线使用,你可以保存页面到本地,或者从 http://github.com/chriseth/browser-solidity 克隆一个. NPM / node.js 这可能安装Solidity到本地最轻便最省事的方法. 在基于浏览器的Solidity上,Emscripten提供了一个跨平台JavaScript库,把C++源码…
本文首发于深入浅出区块链社区 热烈祝贺 Solidity 最新 0.5.8 中文文档发布, 这不单是一份 Solidity 速查手册,更是一份深入以太坊智能合约开发宝典. 翻译说明 Solidity 最新 0.5.8 中文文档 根据当前 最新官方版本v0.5.8 进行翻译,本翻译最初 HiBlock 社区发起,后经过 深入浅出区块链社区 社区成员根据最新版本补充翻译. 大部分的译者,都是国内顶尖的以太坊开发和研究人员,部分译者如下: 杨镇 <深入以太坊智能合约开发>作者,<精通以太坊&g…
http://truffle.tryblockchain.org/ Truffle框架 Truffle是什么? Truffle是针对基于以太坊的Solidity语言的一套开发框架. 本身基于JavaScript. 学习Truffle前要知道什么? 其基于JavaScript,但对于JavaScript的要求较低,知道基本语法,模块,Promise的概念差不多就可以. 知道Solidity,因为本身就是针对它的一个框架.不然学这个干什么. 知道一点以太坊的基础,不过学Solidity那点就够了.…
http://www.tryblockchain.org/ 教你如何舒服的看solidity代码 最近智能合约随着区块链技术的发展越发收到广大技术人员的重视! 其中最被看好的以太坊就是一个提供智能合约开发的平台,它拥有比其他区块链更图灵完备的技术 -- 以太坊虚拟机(EVM)..您无需去了解区块链底层技术(点对点网络.数字加密技术等)只要拥有基本的编程知识和javascript基础,就可以在区块链上开发一款自己的去中心化应用. 以太坊开发了一套近似于javascript语言--solidity.…
简单介绍 官网传送门  Truffle是针对基于以太坊的Solidity语言的一套开发框架.本身基于Javascript,使用以太坊虚拟机(EVM)的世界一流的开发环境,用于区块链的测试框架和资产管道,旨在简化开发人员的生活. 安装truffle 安装前提: 预装nodejs 1.全局安装 npm install -g truffle 建立软链接 ln -s  /opt/node-v10.16.0-linux-x64/bin/truffle /usr/local/bin/truffle 2.单个…
P90 .1-从零构建和部署去中心化投票App-01 P91 .2-从零构建和部署去中心化投票App-02 P92 .3-从零构建和部署去中心化投票App-03 参考博文:http://liyuechun.org/2017/10/13/smart-contract-voting-dapp/ 课程目标 了解区块链智能合约 学会搭建智能合约开发环境 学会如何编译智能合约 学会如何将智能合约部署到区块链 学会如何通过WebApp和智能合约尽心互动 掌握DApp(去中心化App)的整个开发部署流程 掌握…
通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 javascript 文件.多终端多浏览器同步测试的开发环境,并且还可以通过 piblish 命令对项目下的文件进行打包操作. 相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常…
在Web App和Hybrid App横行的时代,为了拥有更好的用户体验,单页面应用顺势而生,单页面应用简称`SPA`,即Single Page Application,就是只有一个HTML页面的应用程序,应用中所有的视图都包含在这个HTML页面中,并通过JavaScript控制相关视图的显示和隐藏,这种模式可以让用户在Web App感受Native App的速度和流畅.本篇文章的目的就是教你如何来快速的构建一个H5单页面切换骨架. 一. 页面设计 在构建SPA应用时,首先要确定你的应用需要包含…
.NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法 0x00 为什么需要Map(MapWhen)扩展 如果业务逻辑比较简单的话,一条主管道就够了,确实用不到Map.不过当业务逻辑比较复杂的时候,有时候我们可能希望根据情况的不同使用特殊的一组中间件来处理HttpContext.这种情况下如果只用一条管道,处理起来会非常麻烦和混乱.此时就可以使用Map/MapWhen建立一个分支管道,当条件符合我们的设定时,由这个分支管道来处理HttpContext.使用…
.NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除了直接用ApplicationBuilder的Use()方法注册中间件外,还可以使用ApplicationBuilder的扩展方法UseMiddleware()注册中间件.这种情况下可以注册类型,这个方法会通过反射解析这个类型,并把它包装成Func<ReuqestDelegate,RequestDe…
.NET Core中间件的注册和管道的构建(1)---- 注册和构建原理 0x00 问题的产生 管道是.NET Core中非常关键的一个概念,很多重要的组件都以中间件的形式存在,包括权限管理.会话管理.路由等.所以搞明白中间件是如何注册并最终构建成管道的很重要.园子里很多先驱早已经开始了这方面的研究学习,也写了很多文章,不过我看了后有些地方还不是特别明白.毕竟每个人都是不同的,有些内容作者觉得是常识不需要多写的地方对我来说可能就是个盲区.幸好.NET Core整个项目都是开源的,找到源码看了下解…
返回<.Net中的AOP>系列学习总目录 本篇目录 开始一个新项目 没有AOP的生活 变更的代价 使用AOP重构 本系列的源码本人已托管于Coding上:点击查看. 本系列的实验环境:VS 2013 Update 5(建议最好使用集成了Nuget的VS版本,VS Express版也够用),安装了PostSharp. 这篇博客覆盖的内容包括: 为项目创建需求 从零编写代码来满足需求 不使用AOP重构凌乱的代码 使用AOP来重构代码 这一节会构建一个汽车租赁系统,先是给定业务需求,然后逐渐地添加代…
提到构建WebService服务,大家肯定第一个想到的是使用WCF,因为简单快捷嘛.首先要说明的是,本人对WCF不太了解,但是想快速建立一个WebService,于是看到了MSDN上的这一篇文章 Building Cross-Platform Web Services with ServiceStack,所以这里简要介绍一下如何使用ServiceStack快速建立一个WebService服务. 当然,在开始之前,首先要说明一下ServiceStack是个什么东西. 在国内用ServiceStac…
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来可以定制自己的images,特别是能针对不同的系统环境与目标需求适当对镜像进行调整改进.在编辑Dockerfile过程中也参考了以下相关范例: https://hub.docker.com/_/php/ https://hub.docker.com/_/mysql/ https://hub.dock…
使用webstorm+webpack构建简单入门级"HelloWorld"的应用&&构建使用jquery来实现 1.首先你自己把webstorm安装完成. 请参考这篇文章进行安装和破解http://www.cnblogs.com/chengxs/p/6245281.html 2.然后需要你的电脑安装了node.js. 可以参考这篇文章http://www.cnblogs.com/chengxs/p/6221393.html 2.第一种方法:使用命令行窗口.可以在你要创建…
上一篇文章我提到:为了使用"国货",我把 Linux 上的构建和测试委托给了 DaoCloud,而 Travis-CI 不能放着不用啊.还好,这货支持 macOS 系统.所以就把 CoreCRM 在 macOS 上的构建和测试任务交给它了. 我想国内已经有很多写怎么用 Travis-CI 的博客文章了,我就不需要在这里多费话了.当然,最好的文章其实就是 Travis-CI 的文档:最好的帮助都在 StackOverflow 和 GitHub 上.如果还觉得自己英语不够用,看不懂这些站的…
注册的服务器和中间件共同构成了ASP.NET Core用于处理请求的管道, 这样一个管道是在我们启动作为应用宿主的WebHost时构建出来的.要深刻了解这个管道是如何被构建出来的,我们就必须对WebHost和它的创建者WebHostBuilder这个重要的对象具有深刻的理解.[本文已经同步到<ASP.NET Core框架揭秘>之中] 目录一.WebHost    WebHostOptions    构建管道的三个步骤二.WebHostBuilder    WebHost的创建    几个常用的…
在<中篇>中,我们对管道的构成以及它对请求的处理流程进行了详细介绍,接下来我们需要了解的是这样一个管道是如何被构建起来的.总的来说,管道由一个服务器和一个HttpApplication构成,前者负责监听请求并将接收的请求传递给给HttpApplication对象处理,后者则将请求处理任务委托给注册的中间件来完成.中间件的注册是通过ApplicationBuilder对象来完成的,所以我们先来了解一下这究竟是个怎样的对象.[本文已经同步到<ASP.NET Core框架揭秘>之中] […
FileProvider构建了一个抽象文件系统,作为它的两个具体实现,PhysicalFileProvider和EmbeddedFileProvider则分别为我们构建了一个物理文件系统和程序集内嵌文件系统.总的来说,它们针对的都是"本地"文件,接下来我们通过自定义FileProvider构建一个"远程"文件系统,我们可以将它视为一个只读的"云盘".由于文件系统的目录结构和文件内容都是通过HTTP请求的方式读取的,所以我们将这个自定义的FileP…
这是一篇非常优秀的 React 教程,这篇文章对 React 组件.React Router 以及 Node 做了很好的梳理.我是 9 月份读的该文章,当时跟着教程做了一遍,收获很大.但是由于时间原因,直到现在才与大家分享,幸好赶在年底之前完成了译文,否则一定会成为 2016 年的小遗憾.翻译仓促,其中还有个别不通顺的地方,望见谅. 原文地址:Build a universal React and Node App 演示地址:https://judo-heroes.herokuapp.com/…
STEP 1:设置开发环境 与yeoman的所有交互都是通过命令行.Mac系统使用terminal.app,Linux系统使用shell,windows系统可以使用cmder/PowerShell/cmd.exe. 1.1 安装条件 安装yeoman之前,你需要先安装如下内容 Nodejs v4或者更高版本 npm git 通过以下命令检查是否安装node环境以及npm管理工具. $ node -v && npm -v npm默认随node一起安装.有些node版本可能安装的是旧版本的np…
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配置nginx,我这里测试分享内容只是起引导作用:下面将先给出整个架构的核心节点简介,希望各位多多点赞: . 架构设计图展示 . nginx+iis构建服务集群 . redis存储分布式共享的session及共享session运作流程 . redis主从配置及Sentinel管理多个Redis集群 .…