草庐IT

solid-state-drive

全部标签

MetaMask 钱包使用 - Solidity开发教程连载

MetaMask钱包是EVM链开发者及用户最常使用的钱包,MetaMask有移动端版本和浏览器插件(也称为扩展程序)版本,本文介绍的浏览器版本。MetaMask插件下载MetaMask在Chrome谷歌浏览器(同MicrosoftEdge浏览器)、FireFox火狐浏览器均提供了插件。我们打开MetaMask钱包的官网首页https://metamask.io/后,可以点接跳转到插件市场安装。在下载时,请一定要仔细查看URL链接,确保是metamask.io,谨防钓鱼,调转到插件市场的界面如下:然后,直接点击添加到Chrome(由于我已经添加过,上图显示的从Chrome移除),这是最简单的安装

Solidity重入攻击深入理解

始于一份样例代码下面是样例合约的完整代码:pragmasolidity^0.4.23;contractbabybank{mapping(address=>uint)publicbalance;mapping(address=>uint)publiclevel;addressowner;uintsecret;//Don'tleakyourteamtokenplaintext!!!md5(teamtoken).hexdigest()isenough.//Gmailisok.163andqqmayhavesomeproblems.eventsendflag(stringmd5ofteamtoken,

python - 高尔夫代码: Finite-state machine!

Locked.Thisquestionanditsanswersarelocked,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。有限状态机确定性有限状态机是一种简单的计算模型,在基础CS类(class)中被广泛用作自动机理论的介绍。它是一个简单的模型,等效于正则表达式,它确定某个输入字符串被接受还是被拒绝。Leavingsomeformalitiesaside,有限状态机的运行由以下组成:字母,一组字符。状态,通常可视化为圆圈。状态之一必须是开始状态。有些状态可能会被接受,通常可视化为双圆圈。过渡通常可视化为状态之间的有向弓,是与字母相关联的状态之间的有向链接。输入

python - 高尔夫代码: Finite-state machine!

Locked.Thisquestionanditsanswersarelocked,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。有限状态机确定性有限状态机是一种简单的计算模型,在基础CS类(class)中被广泛用作自动机理论的介绍。它是一个简单的模型,等效于正则表达式,它确定某个输入字符串被接受还是被拒绝。Leavingsomeformalitiesaside,有限状态机的运行由以下组成:字母,一组字符。状态,通常可视化为圆圈。状态之一必须是开始状态。有些状态可能会被接受,通常可视化为双圆圈。过渡通常可视化为状态之间的有向弓,是与字母相关联的状态之间的有向链接。输入

python - 谷歌 Colab : how to read data from my google drive?

问题很简单:我在gDrive上有一些数据,例如在/projects/my_project/my_data*.我在gColab中还有一个简单的笔记本。所以,我想做这样的事情:forfileinglob.glob("/projects/my_project/my_data*"):do_something(file)不幸的是,所有示例(例如-https://colab.research.google.com/notebook#fileId=/v2/external/notebooks/io.ipynb)都建议仅将所有必要的数据主要加载到笔记本中。但是,如果我有很多数据,它可能会非常复杂。有没

python - 谷歌 Colab : how to read data from my google drive?

问题很简单:我在gDrive上有一些数据,例如在/projects/my_project/my_data*.我在gColab中还有一个简单的笔记本。所以,我想做这样的事情:forfileinglob.glob("/projects/my_project/my_data*"):do_something(file)不幸的是,所有示例(例如-https://colab.research.google.com/notebook#fileId=/v2/external/notebooks/io.ipynb)都建议仅将所有必要的数据主要加载到笔记本中。但是,如果我有很多数据,它可能会非常复杂。有没

Vuex中的States、Mutations、Actions、Getters、Modules、Plugins的作用(推荐使用版本)

目录一、State二、Mutations三、Actions四、Getters五、Modules前提:state.js要引入,importVuefrom'vue'importVuexfrom'vuex'Vue.use(Vuex) 下面我都省略了一、State所有共享数据都放到Store的state中存储conststore=newVuex.Store({state:{count:0}})访问:当前的值为{{this.$store.state.count}}//this可以省略二、Mutations作用:修改Vuex中的全局数据1、只能通过Mutation变更Store中的数据2、操作有点繁琐,但

区块链开发之Solidity编程基础(一)

Solidy是当前编写智能合约的主流语言概要sol文件结构编译开发引入其他文件注释代码注释文档注释合约状态变量类型值类型1、布尔类型2、整型3、地址4、定长字节数组5、有理数和整型字面量6、枚举类型7、函数类型引用类型1、数据的存储2、数据传递方式3、引用类型1、数组2、不定长字节数组(Bytes)3、字符串(String)4、结构体(Struct)4、字典/映射5、特殊情况概要由ETH为代表的第二代区块链技术,相比于第一代区块链技术而言,最大的特点就是智能合约的出现,让去中心化应用成为了可能。ETH节点为智能合约提供运行环境:EVM(EthereumVirtualMachine)以太坊虚拟机

Solidity--使用Merkletrees为链上合约添加白名单【降低gas消耗】

前言目前的NFT市场越来越火爆,入场的人越来越多,在很多NFT在公开销售的之前就会有设置白名单,让这些白名单的人提前可以购买,又或者制定的白名单的人才能进行购买,从而达到他们饥饿营销的手段,那么关于Solidity如何实现白名单,并且可以最大程度降低我的gas费用,我这边在下面文章总结了两种方式给大家分享。文章目录前言一、实现方式分类二、原理分析三、具体实现前端合约四、材料及相关链接总结一、实现方式分类合约白名单主要的实现方式一般分两种:第一种:数组存储所有白名单的地址,当使用的时候for循环判断msg.sender是否是存在白名单中.缺点:如果名单过多,会消耗极高的gas第二种:Merkle

玩以太坊链上项目的必备技能(错误处理以及异常-Solidity之旅十四)

错误处理作为开发者的我们知道,我们所编写出来的程序难免会出现bug,而要做的是捕获异常,给用户抛出一个友好地错误提示。而在Solidity中,根据状态恢复异常来处理错误,该异常将撤销在当前调用中对状态所做的所有修改,与此同时,还向调用者标记错误。它有许多功能来解决在编译时或运行时可能发生的潜在问题。即使语法错误检查发生在编译时,运行时错误也很难捕捉,主要发生在合约执行过程中。一些运行时错误的例子包括除以0的类型错误,数组超出索引错误,等等。实际上,Solidity的错误处理确保了原子性这一属性。当一个智能合约调用因错误而终止时,所有的状态变化(即对变量、余额等的改变)都会被恢复,一直到合约调用