文章目录 Libra protocol简介 逻辑数据模型 账本状态 交易 账本历史 Libra protocol简介 Libra区块链本质上是一个加密数据库,这个数据库是通过Libra protocol来维护的.所以Libra protocol是Libra区块链的核心. Libra protocol的核心是账户,resources和module. 数据库主要存储可编程的resources账本,比如:Libra coin.这些resources是由定义的module来约定的,这些module也存储…
文章目录 Libra testnet网络 下载和安装Libra 编译Libra client并连接到Testnet网络 创建两个A和B的两个账号 检查libra cli Client是否运行 创建A的账户 创建B的账户 查看账户列表 给A和B添加Libra币 给A添加110 LBR 给B添加40 LBR 查询余额 转账 查看是否转账成功 搭建私链 Libra testnet网络 Libra的测试网络testnet已经上线了,那么我们该怎么做才能在testnet上给自己转账一千万,从此出任CEO,…
文章目录 Libra协议 交易和状态 交易详解 账本状态详解 版本数据库 账户 账户地址 Proof 验证节点 存储 Libra协议 Libra协议是Libra区块链的基础,本文主要讲解Libra协议的一些关键概念. 交易和状态 我们知道区块链也可以叫分布式账本,它主要的作用就是存储各种交易.而为了便于查询和提升效率,现代的区块链都会引入状态的概念,来代表某时刻链上数据的当前快照. 交易会改变相应的状态,如下图所示: 上图描述了执行交易发生时Libra区块链相应的状态改变. 其中T是交易,S是状…
文章目录 Transactions是什么 Transactions运行的基础条件 Transactions的结构 执行Transactions Transactions是什么 我们讲到了Libra是一个分布式账本,存储着账本状态,从账本状态里面,我们可以获取现在每一个账户的资金情况和存储的相应资源. 而这个账本状态就是通过执行Transactions来进行改变的. 用户定义的Transactions是通过Move来编写的,目前来说Libra处于早期版本,只有有限的功能开放给Move语言(不如用户…
文章目录 Move语言 Move的核心概念 Move交易脚本 Move modules Move resources 写一个Move程序 编写交易脚本 编写自己的Modules Move语言 Move是一种新的编程语言,旨在为Libra区块链提供安全且可编程的基础. Libra区块链中的帐户就是由任意数量的Move resources和Move modules组成的. 提交给Libra区块链的每个交易都使用Move编写的交易脚本来对其逻辑进行编码. 交易脚本通过调用module声明的proced…
文章目录 Transaction的生命周期 提交一个Transaction 交易入链的详细过程 接收Transaction 和其他Validators共享这个Transaction 区块Proposing 执行区块并达成共识 提交区块 Transaction的生命周期 本文会以一个提交到Libra validator的transaction为例,来讲解Transaction和其他组件的交互,和具体的状态变化过程. 提交一个Transaction 这里我们举个例子,还是上篇文章的例子,A拥有110…
文章目录 move语言的特点 资源优先 灵活性 安全性 可验证性 Move语句初探 点对点支付交易脚本 Currency Module move语言的特点 Libra的目标是打造一个全球话的金融和货币的平台,从而赋能地球上的几十亿人.那么作为Libra的move语言就需要在安全性和可编程性上面提供大力的支持. 为了实现这样的目标,move遵从如下四大设计原则: 资源优先 在区块链中我们需要通过程序来存取数字资产,这个数字资产和普通程序中的变量(如booleans,integers,strings…
文章目录 存储的数据结构 账本历史 账本状态 账户 事件 前面的文章我们知道,libra会把所有的数据都存储在账本中.为了方便业务逻辑和数据的校验,这个存储是以特定的数据结构来实现的,这里我们叫做验证的数据结构. 验证的数据结构是通过Merkle树来实现的.如果大家熟悉其他的区块链的话,大家可能知道Merkle树由于其特殊的结构,被用在大多数区块链中. 下面我们来分别讨论. 存储的数据结构 如下图所示,我们来详细的讲解其存储的数据结构: (1)用Merkle树来表示的不断累加的账本历史.而Mer…
文章目录 简介 创建Move modules 启动本地网络 创建账号并送测试币 编译Move Module 发布编译好的Module 创建交易脚本 编译编译脚本 执行脚本 简介 因为Libra和Move都是在不断发展的过程,在本文发布的时候,自定义Move modules还不能在testnet上面发布,只能在本地环境发布,下面我们将会看一下到底怎么才能在本地网络上面运行一个自定义Move程序. 创建Move modules 这里,我们创建了一个非常简单的名为MyModule的模块. 该模块具有一…
新手教程之:循环网络和LSTM指南 (A Beginner’s Guide to Recurrent Networks and LSTMs) 本文翻译自:http://deeplearning4j.org/lstm.html 其他相关教程: 1. 深度神经网络简介 http://deeplearning4j.org/zh-neuralnet-overview 2. 卷积网络 http://deeplearning4j.org/zh-convolutionalnets 目录: 1. 前向传播网络…
本文转载自:http://blog.csdn.net/jcodeer/article/details/1823550 '''Tkinter教程之Event篇(3)''''''11.两个事件同时绑定到一个控件'''# -*- coding: cp936 -*-# bind:将事件与处理函数# 将两个事件绑定为同一个组件# 为root绑定两个事件from Tkinter import *root = Tk()# Key事件处理函数def printEvent(event):    print '<K…
本文转载自:http://blog.csdn.net/jcodeer/article/details/1813196 '''Tkinter教程之Grid篇'''# Tkinter参考中最推荐使用的一个布局器.实现机制是将Widget逻辑上分割成表格,在指定的位置放置想要的Widget就可以了.'''1.第一个Grid例子'''# -*- coding: cp936 -*-# 使用grid来布局组件from Tkinter import *root = Tk()# 创建两个Labellb1 = L…
本节我们将要做一个跨屏互动应用的案例分析,该应用时给一家商场做活动使用的,是一个跨屏爱消除游戏.PC端页面显示在连接在PC的大屏幕上,参与活动的玩家可以用自己的手机扫描PC端页面上的二维码,连接成功后,操作手机上的游戏可以同步控制主屏幕的游戏画面和结果.游戏结果会记录到排行榜,商家定期会对排名前10的玩家进行奖励. 游戏规则和前面分析过的爱消除的案例类似,这个游戏本身就是在原来的单机游戏的基础上有进一步开发做了跨屏通讯的内容. (一)游戏规则: 1.开始游戏时,德基的logo机出现在最上面一行的…
本文档要分析的案例是一个爱消除的网页小游戏,从中可以体会一些Mugeda API的用法和使用Mugeda动画制作网页游戏的方法. (一)游戏规则: 1.开始游戏时,手机出现在最上面一行的任意一格: 2.开始游戏时,彩色石头随机从上往下落,填满所有的方框,相同的三个石头不能相邻的排在一列或者一行: 3.手机从上移动到最下面一行的任意一格,就算胜利,或游戏时间结束,消除的石头数量超过30个也算胜利. (二).游戏玩法 只要三个相同的石头相邻的排在一列或者一行,他们就会消失,同时上面的石头往下落,落到…
Instrument Time Profiler教程之Time Profiler 一. 介绍 Time Profiler帮助我们分析代码的执行时间,找出导致程序变慢的原因,告诉我们"时间都去哪儿了?". Time Profiler:分析代码的执行时间,找出导致程序变慢的原因. Allocations:监测内存使用 / 分配情况 Leaks:找到引发内存泄漏的起点 工具版本:Version 8.3 (8E162) 二. 使用Time Profiler 使用Time Profiler可以得…
Spring 系列教程之 bean 的加载 经过前面的分析,我们终于结束了对 XML 配置文件的解析,接下来将会面临更大的挑战,就是对 bean 加载的探索.bean 加载的功能实现远比 bean 的解析要复杂得多,同样,我们还是以本书开篇的示例为基础,对于加载 bean 的功能,在 Spring 中的调用方式为 Mytestbean bean=(Mytestbean) bf getbean("mytest Bean") 这句代码实现了什么样的功能呢?我们可以先快速体验一下 Sprin…
C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号“( )”,有意义吗?看起来最多也就是起个快速识别方法的作用吧.既然C#的语法规定方法就应该这么写,肯定是有一定道理的.如果是上升到战略意义的道理,连作者也不是很明白,但是作者知道这对括号里可以添加“参数”. Unity中参数的作用 要说明参数的作用,就必须从方法说起.方法可以处理变量中的数据,进而影响游戏对象的行为逻辑,这是本章前面一直在强调的.…
Kail Linux渗透测试教程之在Metasploit中扫描 在Metasploit中扫描 在Metasploit中,附带了大量的内置扫描器.使用这些扫描器可以搜索并获得来自一台计算机或一个完整网络的服务信息.本节将介绍使用Metasploit中的辅助模块实现扫描. [实例4-4]在Metasploit中,扫描目标主机.具体操作步骤如下所示: (1)启动MSF终端.执行命令如下所示: root@kali:~# msfconsole msf> (2)搜索所有可用的扫描模块.执行命令如下所示: m…
Wireshark数据抓包教程之Wireshark捕获数据 Wireshark抓包方法 在使用Wireshark捕获以太网数据,可以捕获分析到自己的数据包,也可以去捕获同一局域网内,在知道对方IP地址的情况下,捕获到对方的数据包. Wireshark捕获自己的数据包 如果客户端经过路由器直接上网,如图1.28所示.在该图中,PC机A安装Wireshark,可以在该主机上直接捕获自己的数据.   图1.28  在主机上捕获数据 Wireshark捕获别人的数据包 如果都在一个局域网内,而且知道别人…
上一篇博文介绍了@Order注解的常见错误理解,它并不能指定 bean 的加载顺序,那么问题来了,如果我需要指定 bean 的加载顺序,那应该怎么办呢? 本文将介绍几种可行的方式来控制 bean 之间的加载顺序 构造方法依赖 @DependOn 注解 BeanPostProcessor 扩展 原文: SpringBoot系列教程之Bean之指定初始化顺序的若干姿势 I. 环境搭建 我们的测试项目和上一篇博文公用一个项目环境,当然也可以建一个全新的测试项目,对应的配置如下:(文末有源码地址) <p…
搬瓦工教程之九:通过Net-Speeder为搬瓦工提升网速 有的同学反映自己的搬瓦工速度慢,丢包率高.这其实和你的网络服务提供商有关.据我所知一部分上海电信的同学就有这种问题.那么碰到了坑爹的网络服务商,我们应该怎么办呢? duangduang~~~~~~有请今天的主角:Net-Speeder登场! Net-Speeder是一个linux软件,主要目的是为了解决丢包问题,实现TCP双倍发送,也就是同一份数据包发送两份.这样的话在服务器带宽充足情况下,丢包率会平方级降低.网络传输速度也会有所提升.…
今天继续之前的整理,上篇整理了datagrid的数据显示及其分页功能 获取数据库数据显示在datagrid中:jQuery EasyUI教程之datagrid应用(一) datagrid实现分页功能:jQuery EasyUI教程之datagrid应用(二) 接下来就是数据的增删改查了,首先我们在页面中添加功能按钮 这里很简单就是datagrid的toolbar属性 接下来我们实现按键的功能 查询比较麻烦我们最后写,先写添加吧,既然要添加,就应该有表格或是输入的文本框吧,还要进行提交,那就要有f…
上次写到了让数据库数据在网页datagrid显示,我们只是单纯的实现了显示,仔细看的话显示的信息并没有达到我们理想的效果,这里我们丰富一下: 上次显示的结果是这样的 点击查看上篇:jQuery EasyUI教程之datagrid应用(一) 这里不难发现生日的格式是毫秒(long型数据),并不是我们想要的年月日的格式,那我们就修改一下 我们在js中写入格式时间的方法,并在生日一列用formatter来调用方法格式时间, //格式化时间 //把long型日期转为想要类型 function getDa…
最近一段时间都在做人事系统的项目,主要用到了EasyUI,数据库操作,然后抽点时间整理一下EasyUI的内容. 这里我们就以一个简洁的电话簿软件为基础,具体地说一下datagrid应用吧 datagrid就是一个表格,那我们怎么让数据库中的数据显示在其中呢? 第一步:各种配置这肯定不用说,你要想正常的应用一款软件就需要加载配置,这里我们不做详细说明 : 第二步:配置加载完毕,我们就需要写方法调用数据库来获取数据了, 1.最底层的方法也就是Dao了 ,我们需要获取所有的联系人信息, 2.这里我们定…
kali linux 系列教程之metasploit 连接postgresql可能遇见的问题 文/玄魂   目录 kali linux 下metasploit 连接postgresql可能遇见的问题................................ 1 前言............................................................................................................... 1…
kali Linux系列教程之BeFF安装与集成Metasploit 文/玄魂 kali Linux系列教程之BeFF安装与集成Metasploit 1.1 apt-get安装方式 1.2 启动 1.3 基本测试 1.4 异常信息 1.5 从源码安装BeEF 1.5.1 安装curl git 1.5.2 安装rvm 1.5.3 安装依赖项 1.5.4 安装ruby 1.5.5 安装bundler 1.5.6下载beef 1.5.7 安装和启动 1.6 集成metasploit 1.1 apt-g…
Kali Linux系列教程之OpenVas安装 文 /玄魂 目录 Kali Linux系列教程之OpenVas安装 前言 1.  服务器层组件 2.客户层组件 安装过程 Initial setup 初始管理员密码 从浏览器访问后台 更新数据 管理用户 扫描器配置信息查看 修复安装错误 创建证书 更新NVT 客户端证书错误 前言 OpenVAS是一款开放式的漏洞评估工具,主要用来检测目标网络或主机的安全性.与安全焦点的X-Scan工具类似,OpenVAS系统也采用了Nessus较早版本的一些开放…
Playmaker Input篇教程之PlayMaker菜单概述 Playmaker InputPlayMaker菜单概述 Playmaker插件被导入游戏项目以后,会自动为Unity编辑器添加一个名为PlayMaker的主菜单,如图1-14所示.熟练的使用这个主菜单,可以让我们更快的找到Playmaker提供的重要功能,以及特定行为的快捷键.   图1-14  PlayMaker菜单 Playmaker Input快速打开playMaker编辑器 playMaker编辑器是开发者使用Playm…
Playmaker Input篇教程之Playmaker购买下载和导入 Playmaker Input篇认识Playmaker Playmaker是Unity的插件,其标志如图1-1所示.开发者使用它可以快速的将自己的游戏创意实现出来,而不必纠结于复杂的代码编写.它既适合于独立的开发者,也适合于游戏开发团队.   图1-1  插件Playmaker Playmaker Input篇简述 Playmaker是一个可视的状态机编辑器.而状态机(如图1-2所示)并非十分复杂的概念(本章后面会详细介绍)…
Xamarin Anroid开发教程之Anroid开发工具及应用介绍 Xamarin开发Anroid应用介绍 如今智能手机已经盛行了好几年,而针对这些智能手机的软件开发也变得异常火热.但是在Android平台下只能使用Java开发,iOS平台下也只能使用Objective-C或Swift开发.对于那些C#程序员却只能眼看着这些火热的平台流口水.在几年前只能重新学习一门新的语言,才可以进入这些智能手机开发行业.现在,我们有了Xamarin.C#程序员不需要了解其它语言,就可以开始编写Android…