聊聊gas那些事

1、gas是什么。

gas在词典中的解释是“气体,汽油,瓦斯”的意思,在以太坊中是驱动矿工参与的手续费的基础。
在以太坊中跟gas有关的概念有gas,usedgas,gasprice,gaslimit,具体解释如下:
gas:每笔交易设置的最大可用gas,相当于每笔交易的gaslimit
usedgas:每笔交易实际花费的gas,并不是设置了多少gas,就使用多少gas,实际花费gas的计算参照gas计算部分
gasprice:gas的单价,每笔交易的usedgas * gasprice即为本次交易的手续费。
gaslimit:这里的gaslimit指的是每个块的最大gas限制,其作用可以限制打包的交易数量
每笔交易需要设置gas,gasprice. 有些项目上默认gas为90000,默认gasprice为18 * 1e6

2、gas有什么用?

生成区块的手续费,用来奖励给生成区块的账户,以提升矿工参与的积极性。
同时作为一种防止恶意操作的手段。
1、防止大量的垃圾交易阻塞有效交易打包进区块(因为有手续费会提高垃圾交易的成本)
2、防止合约代码的无限执行(超过gaslimit即恢复到原始状态,同时所有gas都会被花费)
3、通过gaslimit限制区块打包的交易数等。

3、如何计算gas?

每笔交易花费的usedgas怎么计算:
以太坊中,交易分两种,一种是一般交易,主要用来转账用,一种是合约交易,用来执行合约。
一般交易花费的gas默认是params.TxGas =10 。
合约执行花费的usedgas由两部分组成:
第一部分是基础gas,默认值是params.TxGasContractCreation = 53000;
第二部分是合约交易中data数据中非零字符数unzeronum*params.TxDataNonZeroGas + data数据中零字符数zeronum*params.TxDataZeroGas
       其中TxDataNonZeroGas默认是68,TxDataZeroGas默认是4。
如果交易执行成功,则上述计算的usedgas*gasprice即为本次交易的手续费,剩余的gas*gasprice-usedgas*gasprice将返还给用户;
如果交易执行失败,则合约设置的gas*gasprice将全部作为手续费。

4、如何设置gas,gasprice

以下是以太坊的发送交易的RPC接口描述,其中params中的gas*gasprice就是本次交易的最大手续费以上是以太坊的发送交易的RPC接口描述,其中params中的gas*gasprice就是本次交易的最大手续费

### Google Apps Script (GAS) 使用指南 #### 什么是 Google Apps Script? Google Apps Script(简称 GAS)是一种基于 JavaScript 的脚本语言,专门用于扩展和自动化 Google Workspace 应用程序的功能。它允许开发者创建自定义功能来增强 Gmail、Google Sheets、Google Docs 和其他 Google 工具的使用体验[^2]。 #### 如何开始使用 Google Apps Script? 要开始使用 Google Apps Script,可以按照以下方法操作: 1. 访问 [Google Apps Script 官方编辑器](https://script.google.com/) 并登录您的 Google 帐户。 2. 创建一个新的项目,在其中编写脚本代码。 3. 利用内置的帮助文档和 API 参考手册快速上手开发工作流自动化任务或 Web 应用程序[^1]。 #### 核心功能与应用场景 Google Apps Script 提供了许多强大的核心功能,支持多种场景下的应用开发。以下是几个主要的应用领域及其对应的实现方式: - **自动化任务** 开发者可以通过编写简单的脚本来完成日常重复的任务,比如数据导入导出、邮件通知发送等。这些都可以通过调用相应的服务类库完成,例如 `MailApp` 或 `SpreadsheetApp`[^4]。 - **Web 应用开发** 利用 Google Apps Script 还能构建完整的 Web 应用程序。这通常涉及前端界面渲染以及后端逻辑处理两部分的设计。具体来说,HTMLService 负责呈现页面结构;而 doGet() / doPost() 方法则用来响应 HTTP 请求并返回动态内容给客户端显示[^3]。 - **与其他系统的集成** 此外,借助 URL Fetch Service (`UrlFetchApp`) ,还可以方便地连接外部 RESTful APIs 实现跨平台的数据交换共享目的[^5]。 #### 示例代码:简单邮件提醒机器人 下面展示了一段基础示例代码片段,演示如何设置定时触发器向指定邮箱地址定期推送消息提示信息。 ```javascript function sendEmailReminder() { var recipient = 'example@example.com'; // 收件人电子信箱 var subject = '每日待办项清单'; var bodyText = '请记得今天需要完成的工作有...'; MailApp.sendEmail(recipient, subject, bodyText); } // 设置时间驱动件计划执行上述函数 ScriptApp.newTrigger('sendEmailReminder') .timeBased() .everyDays(1) .create(); ``` #### 推荐工具与资源链接 为了提高工作效率及代码质量,这里列举了一些常用的辅助插件和技术资料网站供大家参考学习: - **gas-webpack-plugin**: 自动化管理大型项目的依赖关系树图生成过程中的繁琐细节问题解决办法之一。 - **GAS Documentation Chinese**: 面向中文用户的全面在线参考资料集合中心站点。 - **taking-advantage-of-Web-Apps-with-google-apps-script**: 关于如何充分发挥 G Suite 中嵌入式 webapps 功能潜力的具体实例教学材料汇总。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值