上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 16 下一页

[Gin] 支持 FORM 和 JSON 参数的绑定与验证

摘要: Gin 支持对不同传参方式的参数进行统一绑定并验证,比如如下两种格式: Content-Type: application/x-www-form-urlencoded with a=XX&b=0 Content-Type: application/json with { "a":"XX", "b": 阅读全文
posted @ 2020-04-18 14:44 ercom 阅读(6687) 评论(0) 推荐(0) 编辑

[Go] Golang defer 与 MySQL 连接关闭的陷阱 (database is closed)

摘要: 在 golang 某些 orm 中,你经常会看到这种用法: func main() { db, err := gorm.Open("sqlite3", "test.db") if err != nil { panic("failed to connect database") } defer db. 阅读全文
posted @ 2020-04-17 18:26 ercom 阅读(6063) 评论(0) 推荐(2) 编辑

[PHP] 浅谈 Laravel Scout 的存在意义

摘要: 注:Laravel Scout 是官方支持的对框架模型数据进行全文检索功能的扩展包。 Laravel 的 Scout 与 Eloquent ORM 进行了深度集成,不用开发者再自己进行代码侵入了。 Laravel 的 Scout 默认集成的驱动是 Algolia,是个人限量使用,商业需付费购买的,所 阅读全文
posted @ 2020-04-16 22:29 ercom 阅读(1271) 评论(0) 推荐(0) 编辑

[FAQ] "cannot refer to unexported name" in Golang ?

摘要: Golang 项目中如果使用了其它模块中找不到的函数、常量等,都会提示 "cannot refer to unexported name"。 遇到这种情况,要么是拼写错误了,要么是首字母大小写写错了。 Golang 文件内,首字母大写的函数、常量等 可以被其它模块访问,首字母小写的只能在当前文件中可 阅读全文
posted @ 2020-04-16 22:06 ercom 阅读(613) 评论(0) 推荐(0) 编辑

[Gin] 运行模式检测和设置 (mode.go)

摘要: // 设置方式 gin.SetMode(gin.ReleaseMode) // 检测方式 if gin.Mode() == gin.DebugMode { } 更多相关信息,建议直接去看源代码。 JSON差异对比 网页版文本VsCode SHA 散列加密 MD5 加密 Unix 时间戳转换 Base 阅读全文
posted @ 2020-04-16 17:28 ercom 阅读(3529) 评论(0) 推荐(0) 编辑

[Gin] 路由分组 Group 的内部实现 与 块空间 { } 的应用

摘要: 通过这篇 [Gin] 单文件极简 HTTP Server 流程分析 ( gin-gonic/gin ) 我们知道了 gin.go 中的 Engine 继承有 routergroup.go 中的 RouterGroup 结构,从而获得其所有方法。 RouterGroup 结构有一个方法 Group 是 阅读全文
posted @ 2020-04-15 20:05 ercom 阅读(5959) 评论(0) 推荐(0) 编辑

[Gin] 传统 for 循环中的语义通用化,在 golang 中使用分号 ; 替代 && 流程控制

摘要: // gin.go // HandlerFunc defines the handler used by gin middleware as return value. type HandlerFunc func(*Context) // HandlersChain defines a Handle 阅读全文
posted @ 2020-04-15 11:06 ercom 阅读(488) 评论(0) 推荐(0) 编辑

[Gin] 单文件极简 HTTP Server 流程分析 ( gin-gonic/gin )

摘要: /** * example.go * * @link https://cnblogs.com/farwish */package main import "github.com/gin-gonic/gin" func main() { // 由于是外部调用包,所以必须含包名 gin. 作为前缀 // 阅读全文
posted @ 2020-04-14 22:11 ercom 阅读(1810) 评论(0) 推荐(0) 编辑

[ELK] Elasticsearch 安装/配置、启动/停止、加节点/重启

摘要: Elasticsearch 在不同环境上支持的安装方式很多,有源码安装、二进制安装、docker安装、rpm包等管理器安装。 具体的,根据应用的实际情况选择即可。 完成可测试开发环境的建立后,需要进一步配置为生产环境做准备: 配置 Elasticsearch。 配置重要的 Elasticsearch 阅读全文
posted @ 2020-04-09 19:51 ercom 阅读(1534) 评论(0) 推荐(0) 编辑

[ELK] Elastic Stack 的安全性预览

摘要: 注:ELK Stack 之后的版本都叫做 Elastic Stack,增加了 Beats 等组件。 安全性保护方式: 阻止未授权的访问,通过 密码认证保护、RBAC授权、IP 过滤。 保证数据完整性,通过 SSL/TLS 加密,提高加密强度。 维护一个审计追踪日志,这样你可以知道对集群和数据的操作。 阅读全文
posted @ 2020-04-09 10:31 ercom 阅读(287) 评论(0) 推荐(0) 编辑

[Gin] gin.H{} 与 map[string]interface{}

摘要: gin.H 中的 H 是对 map[string]interface{} 定义的新类型,用来简化生成 map 数据时的书写。 // H is a shortcut for map[string]interface{} type H map[string]interface{} map[string] 阅读全文
posted @ 2020-04-03 19:44 ercom 阅读(2049) 评论(0) 推荐(0) 编辑

[Go] 浅谈 Golang struct 与 PHP class 的相似

摘要: Golang 中的 struct 与 PHP 的 class 在使用方式上差不多。 struct 中的成员可以类比 class 中的属性,struct 中的成员函数可以类比 class 中的方法。 对比示例: // Golang type CollectorOption func(*Collecto 阅读全文
posted @ 2020-04-02 15:46 ercom 阅读(540) 评论(0) 推荐(0) 编辑

[FAQ] Git 修改最后一次的提交人和提交时间 ?

摘要: $ date -R Tue, 21 Mar 2021 21:08:58 +0800 $ git commit --amend --author="xxx <xxx@email.com>" --date="Tue, 21 Mar 2021 21:08:58 +0800" Refer:Git提交人修改 阅读全文
posted @ 2020-04-02 15:16 ercom 阅读(1124) 评论(0) 推荐(0) 编辑

[Blockchain] 开发完真实的 DApp 后才能得出的结论与看法

摘要: 1. 最近经常看到地方新闻有关 区块链在追踪溯源方面被实际应用,但是我本人认为这很大程度上可能是伪命题。 因为,是不是区块链、或者说有没有办法更改数据,这都很难说,本质上这个链还是由机构控制,所以对此我是持怀疑态度的。 2. 技术有轻重之分,在区块链里面就是明显‘链’比‘币’重,目前 DApp 更多 阅读全文
posted @ 2020-03-31 16:50 ercom 阅读(204) 评论(0) 推荐(0) 编辑

[Contract] openzeppelin/cli 开发, 部署, 升级智能合约

摘要: Install Dependency $ npm init $ npm install @openzeppelin/cli Setup project $ npx openzeppelin init Write first contract in contracts/, then compile p 阅读全文
posted @ 2020-03-28 17:20 ercom 阅读(691) 评论(0) 推荐(0) 编辑

[FAQ] Truffle Deployer 合约传参问题: Invalid number of parameters for "undefined". Got 0 expected 1!

摘要: 在使用 `truffle migrate` 时,如果合约的构造函数需要传参,而部署脚本里没有传的时候,就会报这个错。 未传参时: const Migrations = artifacts.require("Migrations"); module.exports = function(deploye 阅读全文
posted @ 2020-03-26 15:19 ercom 阅读(2111) 评论(0) 推荐(0) 编辑

[Blockchain] 去中心化与互联网分布式的联系与区别

摘要: 去中心化和传统分布式都是多机应用,这是它们的共同之处,但是背后有着不一样的用途。 我们所理解的传统分布式及其应用可以解决两个问题:冗余备份/扩容 和 并行计算。 而去中心化应用的目的是维护不可逆转数据的状态机,它的分布式用途集中在冗余,并没有并行计算,不是传统分布式应用的场景。 去中心化不是一定就不 阅读全文
posted @ 2020-03-25 19:03 ercom 阅读(357) 评论(0) 推荐(0) 编辑

[FAQ] Solidity 并发执行 ? 重入攻击 ?

摘要: Solidity 实现的合约中,函数操作都是原子操作,旷工本地执行,取得共识后发布到区块链上。 实际发布到区块链上的不存在并发,全节点同步状态到本地。 Solidity 中有三种方式进行转账,address.transfer、address.send、address.call。 Solidity 重 阅读全文
posted @ 2020-03-25 17:20 ercom 阅读(1031) 评论(0) 推荐(0) 编辑

[Contract] Solidity 多种访问控制 (Access Control) 实现方式

摘要: 在 solidity 中控制访问,一般是通过 modifier 修饰符方法来直接做。 那么对于稍复杂的多种访问控制,通常需要一个统一操作的模块化类库。 现在已经有了这样的类库存在,我们通过一个实现功能上增删改查的 library,然后在具体的合约中声明变量、按需使用。 建议参考 openzeppel 阅读全文
posted @ 2020-03-25 16:49 ercom 阅读(737) 评论(0) 推荐(0) 编辑

[Contract] 一次搞懂 Solidity 的 using xx for xx

摘要: using A for *; # 把 A 的函数附给任意类型使用 using A for B; # 意思是把 A 中的方法附给 B 使用 使用上面的方式,那么在我们的合约中定义了 B 类型的变量后,就可以像 B.xx() 这样使用 A 库的函数了。 举个局部例子:_miners 可以直接使用 has 阅读全文
posted @ 2020-03-24 18:35 ercom 阅读(567) 评论(0) 推荐(0) 编辑

[FAQ] VisualStudio, Source file requires different compiler version (current compiler is 0.6.1+cxxxxxx)

摘要: 当使用的 Solidity 库文件中 pragma 指定的 版本 与本地编译器的使用版本不一致时,会出现这类提示。 解决方式是菜单栏 View -> Extensions -> Extension Settings -> Compile Using Remote Versio 编辑 settings 阅读全文
posted @ 2020-03-24 14:27 ercom 阅读(2329) 评论(0) 推荐(0) 编辑

[Ethereum] 浅谈 ERC20 在 openzeppelin-contracts 中的结构与实现

摘要: 目前 openzeppelin-contracts 的稳定版是 v2.5,截止到本文发布,最新的 Tag 为 v3.0.0-rc.0 以下是 token/ETC20 的文件列表: IERC20.sol 是 interface 接口文件,不包含实现。 ERC20.sol 是对上面 interface 阅读全文
posted @ 2020-03-24 14:22 ercom 阅读(1594) 评论(0) 推荐(0) 编辑

[Ethereum] 浅谈加密商品市场 OpenSea 与 opensea-js

摘要: OpenSea 是用于交易以太坊加密商品的网上商店,主要的商品是 ERC721、ERC1155 标准的 Token。 它的特色就在于,只需要一个部署好的智能合约,你就能在 OpenSea 提供的界面上交易,这点类似 OneClickDapp 这一类针对合约提供统一交互的网站。 所以在交易层面你完全不 阅读全文
posted @ 2020-03-23 15:58 ercom 阅读(2173) 评论(0) 推荐(0) 编辑

[ML] Google colab GPU 免费使用, 可挂载 Google drive

摘要: colab 的文本行就相当于命令行,命令统一都在前面加 ! 。 开启 GPU 加速,通过菜单栏的 “修改” 菜单,选择 “笔记本设置”。 挂载 Google drive 的方式有两种。 第一种方式是点击左边栏的文件夹,装载谷歌云端硬盘即可。 第二种方式是运行以下两行代码,点击出现的链接获得验证码后输 阅读全文
posted @ 2020-03-21 08:28 ercom 阅读(502) 评论(0) 推荐(0) 编辑

[Ethereum] Gas Station Network (GSN) eip-1613 与 Gas Relay Network (GRN) eip-1077

摘要: 在 Ethereum dapp 中,任何涉及状态改动的交易都需要消耗 Gas,这限制了很多没有钱包或者 ETH 的用户对 dapp 的采用。 理念 让非以太用户能够访问智能合约 (如dapps),允许合约接受“接听来电”,即为来电付费。 让合约在可公开访问的渠道上“监听”(例如web URL)。鼓励 阅读全文
posted @ 2020-03-20 16:46 ercom 阅读(516) 评论(0) 推荐(0) 编辑

[Contract] truffle-flattener 合并 Solidity 文件的依赖到一个文件

摘要: 使用 $ npm install truffle-flattener -g $ truffle-flattener <solidity-files> > output.sol 为什么不是 Solidity Flattener ? truffle-flattener 与 truffle 结合紧密,利用 阅读全文
posted @ 2020-03-20 14:30 ercom 阅读(1931) 评论(0) 推荐(0) 编辑

[Contract] 一次搞懂 ETH Gas, GasPrice, GasLimit 之间关系与使用

摘要: Gas 是一个交易费的基本单位(unit),类似汽油的单位“升”,比如一次链上交易可能消耗 5 Gas 汽油,由运行的程序决定。 GasPrice 是一个 Gas 的单价,一般用 Gwei 来形象表示 ( 但注意实际在应用程序中都是使用 Wei ),GasPrice 由用户自己设置,其大小会决定交易 阅读全文
posted @ 2020-03-20 00:03 ercom 阅读(4707) 评论(0) 推荐(0) 编辑

[Blockchain] 以太坊主流测试网 ropsten 和 kovan 的区别 以及 如何选择

摘要: ropsten 采用 POW (Proof-of-Work)共识机制,挖矿难度系数非常低,容易被攻击,不够低碳环保。 kovan 采用 POA (Proof-of-Authority)共识机制,不需要挖矿,由开发人员主动申请、权威节点生成ETH,低碳环保。 所以想要完全自助的,获取 ropsten 阅读全文
posted @ 2020-03-19 15:43 ercom 阅读(2753) 评论(0) 推荐(0) 编辑

[Blockchain] 前后端完全去中心化的思路, IPFS 与 Ethereum Contract

摘要: 我们在使用智能合约的时候,一般是把它当成去中心、减少信任依赖的后端存在。 如果没有特殊后端功能要求,一个 DApp 只需要前端驱动 web3js 就可以实现了。 可以看到,现在前端部分依旧是一个中心化的客户端。 完全去中心化的思路是把整个前端 dist 上传到 ipfs 获取项目的 hash 访问路 阅读全文
posted @ 2020-03-19 13:55 ercom 阅读(413) 评论(0) 推荐(0) 编辑

[Cryptocurrency] rDAI 与 DAI 的区别, 如何质押 rDAI 获取利息

摘要: 以下合约操作需要在安装 MetaMask ( 以太坊的浏览器钱包 ) 的情况下进行。 rDAI 通过和 DAI 1 : 1 互换得到,在 rDAI 提供的 dapp 上面操作 https://app.rdai.money 选择 CREATE 标签,第一步加好“收益”收取地址池(一个就可以),第二步质 阅读全文
posted @ 2020-03-18 18:39 ercom 阅读(430) 评论(0) 推荐(0) 编辑

[Contract] ETH 与 Gas 之间的价格转换关系, Ethereum Gas Price Chart

摘要: 以太坊网络每天的平均气价(Gas)是变化,有一张价格表:https://etherscan.io/chart/gasprice 然后你可以知道 1 Gas = xx Gwei,再换算一下 1 ETH = xx Gas 即可。 另外你需要 搞懂 ETH Gas, GasPrice, GasLimit 阅读全文
posted @ 2020-03-14 09:11 ercom 阅读(2055) 评论(0) 推荐(0) 编辑

[Contract] Solidity 合约发布到测试网 ropsten 的作用

摘要: 当我们本地完成了一系列测试以后,接下来就是准备上线了。 关于合约部署可以参考这篇:Solidity 合约使用 truffle 部署到测试网和主网 你可能有一个疑问,在上主网之前,先上测试网的作用是什么呢? 理由是,我们可以通过 MetaMask 切换到 ropsten 网络,进行 Dapp 上的常规 阅读全文
posted @ 2020-03-14 07:07 ercom 阅读(609) 评论(0) 推荐(0) 编辑

[Contract] Solidity 合约使用 truffle 部署到测试网和主网

摘要: 使用 truffle 发布到非本地的以太坊主网或者测试网时,需要提供钱包的助记词或私钥。 首先安装 truffle 组件:npm install @truffle/hdwallet-provider 注册 https://infura.io,得到 project id 和 key,使用其 api 连 阅读全文
posted @ 2020-03-13 19:22 ercom 阅读(1641) 评论(0) 推荐(0) 编辑

[FAQ] Solidity 合约销毁 ?

摘要: 仅创建者可以销毁合约的示例: address public owner; // When deploy contract constructor() public { owner = msg.sender; } function destroyContract() external onlyOwne 阅读全文
posted @ 2020-03-10 16:23 ercom 阅读(887) 评论(0) 推荐(0) 编辑

[PHP] 几个拖慢 PHP 程序/API 运行速度的点

摘要: 1. 启动、查找 Session 需要一定开销,默认 session.save_handler=files,可以通过修改为 redis 提速。 files 的 session 会阻塞请求?https://log.zvz.im/2016/02/27/PHP-session/ 某些接口业务可能不需要开启 阅读全文
posted @ 2020-03-10 15:48 ercom 阅读(551) 评论(0) 推荐(0) 编辑

[FAQ] MetaMask ALERT: 交易出错. 合约代码执行异常.

摘要: 首先确认载入的合约地址是否是最新的,比如 web3 载入的 abi 格式的 json 文件名 正不正确。 其次需要检查合约逻辑是否都正确,以及是否是合约抛出的错误,这两点最好是通过写测试用例来保证。 最后看调用方是否传参有问题,包括调用合约时传递的任何一个选项,比如 from, value, dat 阅读全文
posted @ 2020-03-10 00:49 ercom 阅读(4399) 评论(0) 推荐(0) 编辑

[PHP] 浅谈 Laravel 三大验证方式的区别, auth:api, passport, auth:airlock

摘要: auth:api 最先出来,提供了最简单和最实用的方式进行 api 身份校验。 关于它的含义和用法你可以参考以下两篇: 浅谈 Laravel Authentication 的 auth:api 浅谈 Laravel auth:api 不同驱动 token 和 passport 的区别 passpor 阅读全文
posted @ 2020-03-09 14:09 ercom 阅读(1423) 评论(0) 推荐(0) 编辑

[Contract] 测试 Solidity 合约代码的两种方式 与 优缺点

摘要: 第一种,使用 Truffle 这类继承了测试工具的框架,只要编写 js 脚本就可以测试 web3 与合约的逻辑。 优点是完全可控,粒度够细,便于集成测试;缺点是需要花费一些时间编写测试脚本,不过值得。 第二种,使用 Remix 提供的图形化方法调用,可以快速验证方法返回值的正确性,方便了调试。 只需 阅读全文
posted @ 2020-03-09 00:29 ercom 阅读(683) 评论(0) 推荐(0) 编辑

[FAQ] JS 实现暂停(睡眠) Sleep 与 倒计时 ?

摘要: 想要暂停/睡眠一秒,可以参考使用以下方式: async () => { await (new Promise((resolve) => setTimeout(resolve, 1000))) } 如果是倒计时,那么只需要把 sleep 可以放在 while 循环里,满足指定条件后再 break 退出 阅读全文
posted @ 2020-03-08 21:23 ercom 阅读(1033) 评论(0) 推荐(0) 编辑

[FAQ] Solidity 实现倒计时 (count down) ?

摘要: 思路:一种方式是使用 ethereum-alarm-clock,另一种是合约实现当前过去了多少时间,外部进行不间断调用获得。 Any else? Refer:Solidity能倒计时吗 Link:https://www.cnblogs.com/farwish/p/12424187.html 阅读全文
posted @ 2020-03-08 21:18 ercom 阅读(992) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 16 下一页