最近有点背...
  • About Me

  • 兴趣爱好



  • 上一张

以太坊学习2—转账与智能合约

前言

上一篇文章已经为我们搭建好了开发环境,接着上面讲,本篇文章将简单的记录如何创建用户、转账、编写第一个智能合约并部署它等操作。

开发者启动及创建账户

由于账户的余额为0时,是不能够部署智能合约的。这时,我们选择dev开发者模式进行开发。

  • 开发者模式启动以太坊
1
./geth --dev --datadir testNet console 2>> info.log

这里写图片描述

以太坊学习1—搭建以太坊私有链

关于以太坊

关于以太坊,我刚开始是从区块链的一些开源项目得知的。我们知道,比特币仅是作为数字货币的功能,是最开始区块链技术的应用(区块链1.0)。而以太坊作为公共的区块链平台,是一个去中心化的分布式账本技术的应用平台。智能合约的编写,让它可以实现更多元化的服务,所以我们更愿意称它为区块链2.0。

搭建环境

  • CentOS7.2
  • 以太坊客户端go-ethereum

    安装以太坊

    安装yum源

    1
    rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm

线程安全的单例模式

单例模式

单例模式(Singleton Pattern)是 Java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。它有以下三个特点:

  • 单例类只能有一个实例。
  • 单例类必须自己创建自己的唯一实例。
  • 单例类必须给所有其他对象提供这一实例。

    创建单例模式

  • 懒汉式(线程不安全)

    所谓的懒汉式就是需要使用的时候才去创建实例。这种非线程安全的创建模式,懒加载很明显,不能够满足多线程条件下使用。

数据结构之堆

前言

堆也是一种特殊的数据结构,是一种特殊形式的完全二叉树。

堆分为两种:大顶堆(每个节点的值都不大于其父节点的值,也就是根节点的值是最大的)和小顶堆(每个节点的值都不小于其父节点的值,也就是根节点的值是最小的)。

堆的基本操作(以大顶堆为例)

既然堆本身是完全二叉树,所以我们可以使用一维数组的方式进行储存。0位置用来存储元素的个数,1~n用来存储元素。

所以对于任意一个元素i来说 ,如果它有左孩子,那么它的左孩子值可以是2i;如果它有右孩子,那么右孩子可以是2i+1。

  • 创建堆

心灵捕手

“你只是个孩子,你根本不晓得你在说什麽。所以当我问你艺术,你可能会提出艺术书籍中的粗浅论调,有关米开朗基罗,你知道很多,他的满腔政治热情,与教皇相交莫逆,耽于性爱,你对他很清楚吧?但你连西斯汀教堂的气味也不知道吧?你没试过站在那儿,昂首眺望天花板上的名画吧?肯定未见过吧?如果我问关于女人的事,你大可以向我如数家珍,你可能上过几次床,但你没法说出在女人身旁醒来时,那份内心真正的喜悦。你年轻彪悍,我如果和你谈论战争,你会向我大抛莎士比亚,朗诵“共赴战场,亲爱的朋友”,但你从未亲临战阵,未试过把挚友的头拥入怀里,看着他吸着最后一口气,凝望着你,向你求助。我问你何为爱情,你可能只会吟风弄月,但你未试过全情投入真心倾倒,四目交投时彼此了解对方的心,好比上帝安排天使下凡只献给你,把你 从地狱深渊拯救出来,对她百般关怀的感受你也从未试过,你从未试过对她的情深款款矢志厮守,明知她患了绝症也再所不惜,你从未尝试过痛失挚爱的感受…… ”

心灵捕手0