sol

sodility合约审计入门学习思路 零基础一

自作多情 提交于 2020-10-26 07:55:16
sodility合约审计入门学习思路 零基础一 简介 准备工作 学习步骤 1、熟悉sodility语言 2、编写合约、掌握sodility 3、常见合约漏洞 4、合约靶场 5、其他相关知识链接 简介 Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在 以太坊虚拟机(EVM) 上运行。 发现越来多的人关注btc、eth相关的区块链知识,可能大家都幻想过找到一个合约漏洞,发一笔横财哈哈。 网上的学习资料杂而乱,再这里给大家提供一个sodility合约审计的学习思路,让大家少走弯路。 学习一个新技能,肯定要花不少时间,希望大家坚持下去,肯定会有收获。 准备工作 下面的链接部分需要科学上网,这里就不教大家了,自己去准备。 1、谷歌浏览器,自行下载安装 2、链接: remix 此网站用于合约的编译、部署、测试(常用,做笔记,收藏下来),不想用网页的也可以在本地搭建。 链接: remix使用 此网站介绍怎么样使用remix,新版本可能界面做了变化,对应是去找到功能位置就行。 3、metamask(谷歌浏览器插件,eth钱包) 链接: MetaMask的安装与使用 图片: 后面使用remix审计合约会用到,自行下载(需要科学上网)。 学习步骤 1、熟悉solidity语言语法。 2

tcp socket的发送与接收缓冲区

久未见 提交于 2020-10-02 14:20:03
1) 应用程序可通过调用send(write, sendmsg等)利用tcp socket向网络发送应用数据,而tcp/ip协议栈再通过网络设备接口把已经组织成struct sk_buff的应用数据(tcp数据报)真正发送到网络上,由于应用程序调用send的速度跟网络介质发送数据的速度存在差异, 所以,一部分应用数据被组织成tcp数据报之后,会缓存在tcp socket的发送缓存队列中,等待网络空闲时再发送出去。同时,tcp协议要求对端在收到tcp数据报后,要对其序号进行ACK,只有当收到一个tcp 数据报的ACK之后,才可以把这个tcp数据报(以一个struct sk_buff的形式存在)从socket的发送缓冲队列中清除 。 tcp socket的发送缓冲区实际上是一个结构体struct sk_buff的队列,我们可以把它称为发送缓冲队列,由结构体struct sock的成员sk_write_queue表示。sk_write_queue是一个结构体struct sk_buff_head类型,这是一个struct sk_buff的双向链表,其定义如下: struct sk_buff_head { struct sk_buff *next; //后指针 struct sk_buff *prev; //前指针 __u32 qlen; //队列长度(即含有几个struct sk

browser/payable.sol:14:34: Error: Expected token LBrace got ‘View‘ function getMessage()

假装没事ソ 提交于 2020-10-02 00:57:19
在学习solidity过程中碰到一个小细节的问题,这个问题不是很难,但是网上找了许多资料也未能找到相关的解决办法,今天偶然看了一篇文章解决了这个问题。 错误如下: 编写的代码如下: //指定编译器版本,版本标识符 pragma solidity ^0.4.0; //关键字 contract 跟java的class一样 智能合约是Inbox contract Inbox{ //string 是数据类型,message是成员变量,在整个智能合约生命周期都可以访问 //public 是访问修饰符,是storage类型的变量,成员变量和是全局变量 string public message = "zsan "; //view是修饰符,表示该函数仅读取成员变量,不做修改 function getMessage() public view returns(string) { return message; } } 因为我想在运行合约的时候点击函数名称就可以显示结果,所以使用了view关键字来显示,但是每次运行都是出现这个错误,网上看别人都能完美运行但是自己却总是运行不成功。 【分析原因】 网上大多数教程是2017/2018的,现在是2020年经过2年的发展Remix-Ethereum IDE 版本更新了很多,所以经过我自己的测试0.4.0到0.4.15的版本不兼容了

docker run中-v参数的用法解释

不羁的心 提交于 2020-08-18 21:01:45
作用:挂载宿主机的一个目录 如: # docker run -it -v /宿主机目录:/容器目录 镜像名 /bin/bash 这里-it是参数作用是: -i: 以交互模式运行容器,通常与 -t 同时使用; -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; 就是容器与你的终端通信输入输出。 最后的/bin/bash是command参数。 这里一开始我搞错的地方是挂载方向,因此不理解到底有何用。 要知道,这句的意思是 将宿主机目录挂载到容器里 ,这个方向要搞清,那么剩下的作用是什么的疑惑就搞清楚了。 这里把容器想成一个单独的系统,或者说电脑,而你的宿主机目录是一个U盘,挂载后,你往宿主机该目录里放文件,那么通过容器里对应目录便可以访问到此文件,不需要重新生成容器就可以在“容器外部”添加和修改某些文件,如我用Mythri工具检测智能合约漏洞,采用docker容器如下命令:docker run -v $(pwd):/tmp mythril/myth analyze /tmp/test.sol,将宿主机当前目录挂载到容器的tmp目录,则在容器中操作时tmp目录就是当前的目录,在当期目录中新建智能合约或者改变旧的合约如test.sol的内容,再通过analyze命令检测合约即可,既不用重新生成容器,也不需要知道容器的绝对路径从而将新合约复制进去,只需要复制到当前目录即可。

四大全球卫星导航系统都能提供什么服务?

天大地大妈咪最大 提交于 2020-08-17 09:00:22
来源:远望智库预见未来 远望智库特约专家 陈刘成 卫星导航系统是人类发明的最为重要的时间和空间测量工具。没有测量就没有科学,没有测量就没有管理。卫星导航系统价值集中体现在帮助人类精确感知、认知、控制物质、能量、信息的时空运行与分布。目前已经建成(或即将建成)的四大GNSS系统包括美国的GPS、俄罗斯的GLONASS、中国的北斗、欧盟的Galileo。他们是怎么工作的?都能提供什么样的服务呢?本文为您做一一介绍。 1、卫星导航工作原理 卫星导航系统是在卫星位置和时间精确已知的基础上,通过测量卫星信号至用户机天线传播时间(乘以光速等效为距离)来确定用户位置的。为测定用户三维位置和用户的钟差,至少需要观测4颗卫星的数据。 卫星导航系统由空间段、控制段和用户段三个部分组成,其中空间段主要由导航卫星星座组成;控制段主要由主控站(负责数据汇集、信息处理、上行注入、运行控制等)、注入站、监测站等组成;用户段是指能够接收导航信号并进行定位导航的各种接收机、移动平台。 测量过程中不可避免会产生误差。定位误差大小与测距的误差大小以及卫星与用户的相对位置关系有关。 用户位置定位误差UPE=UERE×PDOP。用户等效距离误差UERE的来源包括了空间段、控制段和用户段的多种误差来源。①卫星时钟误差;②卫星轨道误差;③卫星硬件偏差;④电离层效应误差;⑤对流层误差;⑥多路径效应误差;⑦接收机硬件误差。

长链剖分

百般思念 提交于 2020-08-17 03:43:22
看到标题估计大家也猜到了,其实和 树链剖分 所用到的重链剖分挺像。 重链剖分中,每个点所选取的重儿子是它儿子中子树最大的那一个儿子,他们之间的连线被称为重边;在整棵树中,许多重边组成的链即重链。重链相互不重合的划分了整棵树。 重剖和长剖唯一不同的是:重链剖分中一个点的重儿子是子树最大(管辖节点最多)的儿子,而长链剖分选择的是 子树深度最大的那个儿子(子树深度:一个点的子树中深度最大的点的深度)。 (图:重链剖分和长链剖分的对比) 看明白是长链剖分是怎么划分了后,我们先来了解一下长链剖分的两个性质。 性质1: 对树长链剖分后,树上所有长链的长度和为$n$ 这个不必解释吧... 性质2: 对于树上任意一点$x$,它的$K$级祖先$y$所在长链的长度一定$>=K$ 这个恐怕就没那么显然了.. 不过还是好懂。如果$x$就在$y$所在的长链里,那么既然$x$上跳$K$步后都还在该长链里,这条长链的长度铁定$>=k$咯 那么如果$x$不在$y$所在的长链里呢?也简单,我们思考一下,$x$没在$y$所在的长链的原因是什么?就是因为x的深度没有$y$所在长链的 最大深度 大,所以才被分到了轻儿子里。那既然$y$所在长链的最大深度$>=$x的深度,这条长链的长度自然$>=K$了 (图:x不在y所在的长链的情况) 性质3: 任何一个点向上跳到根所经过的轻边不会超过$\sqrt{n}$条

以太坊彩票项目

半世苍凉 提交于 2020-08-15 13:25:02
以太坊彩票项目 目录 项目概述 项目具体实现 [1].彩票业务规则示例图 [2].整体项目搭建 [3].彩票合约 lottery.sol [4].编译合约 01-compile.js [5].部署合约 02-deploy.js [6]. 从区块链获取合约实例 [7].完善界面 [8].最终效果 创作声明 备注 目录 项目概述 solidity 编写合约,node.js 编译、部署、获取、交互合约,react搭建前端界面 超详细~ (1)彩票业务规则-智能合约lottery.sol [1] 全民参与(play函数) [2] 每次投注只能投注1eth [3] 每个人可以投多注 [4] 仅限管理员可以开奖(KaiJiang函数) [5] 仅限管理员可以退奖(TuiJiang函数) (2)编译智能合约 01-compile.js [1] 导入solc编译器和fs库 [2] fs读取contracts文件夹下lottery.sol合约 [3] solc编译合约 [4] 导出bytecode(机器码)和interface(ABI) (3)部署智能合约上链 02-deploy.js [1] 获取bytecode和interface [2] 导入web3 [3] 设置网络,管理员(部署合约的人)实例化web3(.setProvider) [4] 拼接合约数据 [5] 拼接bytecode [6]

阿里为什么弃用hibernate ?看完Mybatis技术原理实战我终于明白

有些话、适合烂在心里 提交于 2020-08-13 18:40:42
推荐观看: 阿里P8架构师谈:工作1-5年的Java工程师,怎样提高核心竞争力 阿里架构师直言:“没有实战都是纸上谈兵”!Redis实战PDF分享 奋发图强半年多,终于四面阿里如愿拿到心仪offer定级P7 hibernate和mybatis是当前流行的ORM框架。hibernate对数据库结构提供了较为完整的封装。mybatis主要着力点在于java对象与SQL之间的映射关系。 MyBatis和hibernate孰优孰劣?一直都饱受争议,这不,前几天群里关于这个话题,又吵起来了。 众多过来人总结出来的经验就是:hibernate确实厉害,但MyBatis入门简单,即学即用,提供了数据库查询的自动对象绑定功能,而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美。可以进行更为细致的SQL优化,可以减少查询字段。 为什么阿里巴巴的持久层抛弃hibernate,采用MyBatis框架? 之前和阿里的一个面试官交流中,他讲到对于性能要求高,需求变化多的互联网项目来说,sql直接优化上,mybatis要比hibernate方便很多,用在sql优化上的开发时间太长,阿里巴巴的持久层抛弃Hibernate,采用了MyBatis框架。 于是趁热打铁,研究了一下MyBatis。MyBatis框架的核心功能其实并不难,无非就是动态代理和jdbc的操作,难的是写出来可扩展

音程软件演示

强颜欢笑 提交于 2020-08-13 17:54:51
音程指两个音级在音高上的相互关系,就是指两个音在音高上的距离而言,其单位名称叫做度。 在音程中两音同时演奏的叫作和声音程,两音先后演奏的叫作旋律音程。 例如以下是旋律音程: 以下是和声音程: “度”是音程的基本衡量单位。在基础乐理中,人们把自然音阶Do、Re、Mi、Fa、Sol、La、Si的每个音都称为一度,以此为前提,两个音之间包含几个音,便称其音程为几度。 1 5 音程是5度音程,效果可以下载软件试听。 何问起音乐下载 https://hovertree.com/h/bjag/mcmub5gm.htm 来源: oschina 链接: https://my.oschina.net/u/4301845/blog/4437926

20200614-解线性方程组与状态空间表达式实现的方法

℡╲_俬逩灬. 提交于 2020-08-13 06:48:02
进度日志 公共课一:政治 公共课二:英语一 业务课一:数学一 业务课二:自动控制原理、信号与系统 20200614 很好,上午休息。嗯...调子不对。 下午...重新在状态空间中挣扎...(因为看的是第二次视频了...)能控标准I型和能观标准I型分别来自两种不同的实现方法。后面在进行状态向量的线性变换之时发现特征值特征向量、相似矩阵、对角矩阵需要复习。 晚上,就着笔记复习线性代数解方程组,向量空间与矩阵的秩与方程组的解。 15号...上午计划整高数的微分方程;下午经典控制中的劳斯判据刷题;晚上...无穷级数试试第三遍刷能记起来多少。 公共课一 NONE 公共课二 单词 马桶刷 toilet brush 洗漱用品 toiletries tan 晒黑;棕褐色 lilac 丁香花;淡紫色 起步价 base fare 全价票 full fare ticket fare 饮食、饭菜;出租车乘客 assure 和 ensure区别 assure主语只能是人 业务课一 线性代数-笔记复习 L2 E Elementary/Elimination Matrix P Permutation Matrix I Identity Matrix Good Matrix -> Invertible 通过观察来求简单矩阵的逆 L3 4种方法来看待矩阵乘法AB 注意其中A的列去乘以B的行 -> 秩一矩阵的引出