撸羊毛必备:Outlook别名邮箱注册
Outlook别名,顾名思义,它不是一个单独的邮箱,而只是你原来邮箱的一个别名。所有来往邮件都可以发送到这同一个邮箱查收的,而且你也可以选择用哪个别名回复。 但看起来他真的是另外一个完全不同的邮箱,比Gmail那种后缀邮箱还要好。在注册其他网站撸羊毛的时候,这一点非常有用。 第一步,点击设置; 第二步,全部设置;进入设置第三步,同步电子邮件; 第四步,管理或选择主别名;管理别名第五步,添加电子邮件;添加别名第六步,选择适当的用户名,如果被别人占用了,第7步会提示,重新选择即可; 第七步,点击“添加别名”,你就有一个新的别名邮箱了。添加别名还有一些规则值得注意:每个帐户总共最多可以创建 10 个别名;每周最多可以更改别名两次;
骗子的助记词和私钥列表
这几个月,我收到了很多推特(@alexgiantwhale)私信,说自己是个学生,刚接触币圈,不知道怎么把账户里的U转出来,并贴出来自己的助记词,希望帮忙转出来,一人一半云云。相信很多人都收到了很多一样的私信,应该也都知道这是骗局,一笑置之就好。 不过总会有人上当,不然他们也不会这么一而再再而三的发私信了。事情是这样的:很多人导入帐户后,发现里边没有Gas,会以为是因为缺少Gas才无法转出USDT的,其实不是。这些帐户在被机器人监控着,目的是骗你的手续费,你转入一点ETH或者TRX做手续费,会被马上转走;那些USDT大多数时候,是已经被列入了黑名单的(Tether在合约层面控制),也就是说就算里边有Gas你也转不走,那些仅仅是骗你上钩的诱饵;为了防止更多人上当,我罗列几个我收到的私信,供大家参考(再次警告,不要觉得自己很聪明,能从骗子的手中抢食吃)Hi! i'm a student I received a sum of 6800USDT(trx20) but I don't know how to sell USDT to get USD into my b...
SeeDAO 元规则
注:这不是SeeDAO元规则的原始出处,只是我为了测试Mirror导入功能而新建的一个备份。原始文档地址是 https://mirror.xyz/seedao.eth/oYvqxPztTXrE0C_HuW9b1ua5S1TTvZ_hoBTi6hwQk18论坛提案链接: https://forum.seedao.xyz/thread/39871序言SeeDAO 是一个基于区块链的数字城邦,其表现形态为去中心化的数字网络(SeeDAO Network)和映射在全球各地的物理据点 ( SeeShore ),由SeeDAO成员共建、共治、共享。 作为一个数字城邦,SeeDAO强调人的重要性,强调代码服务于人。除金库里的流动性资产外,由SeeDAO成员在共同创造过程中凝结的社会关系、积累的公共资产、形成的组织规则和历史记忆,均为SeeDAO的宝贵财富。 SeeDAO致力于满足成员对经济基础、公共服务与治理等多方面的诉求,促进身在城邦中人的自由发展。第一章:SeeDAO成员的权利与义务成员是SeeDAO基本单元。SeeDAO的一切权限、责任、收益、风险,最终与SeeDAO成员相关。满足以下任...
撸羊毛必备:Outlook别名邮箱注册
Outlook别名,顾名思义,它不是一个单独的邮箱,而只是你原来邮箱的一个别名。所有来往邮件都可以发送到这同一个邮箱查收的,而且你也可以选择用哪个别名回复。 但看起来他真的是另外一个完全不同的邮箱,比Gmail那种后缀邮箱还要好。在注册其他网站撸羊毛的时候,这一点非常有用。 第一步,点击设置; 第二步,全部设置;进入设置第三步,同步电子邮件; 第四步,管理或选择主别名;管理别名第五步,添加电子邮件;添加别名第六步,选择适当的用户名,如果被别人占用了,第7步会提示,重新选择即可; 第七步,点击“添加别名”,你就有一个新的别名邮箱了。添加别名还有一些规则值得注意:每个帐户总共最多可以创建 10 个别名;每周最多可以更改别名两次;
骗子的助记词和私钥列表
这几个月,我收到了很多推特(@alexgiantwhale)私信,说自己是个学生,刚接触币圈,不知道怎么把账户里的U转出来,并贴出来自己的助记词,希望帮忙转出来,一人一半云云。相信很多人都收到了很多一样的私信,应该也都知道这是骗局,一笑置之就好。 不过总会有人上当,不然他们也不会这么一而再再而三的发私信了。事情是这样的:很多人导入帐户后,发现里边没有Gas,会以为是因为缺少Gas才无法转出USDT的,其实不是。这些帐户在被机器人监控着,目的是骗你的手续费,你转入一点ETH或者TRX做手续费,会被马上转走;那些USDT大多数时候,是已经被列入了黑名单的(Tether在合约层面控制),也就是说就算里边有Gas你也转不走,那些仅仅是骗你上钩的诱饵;为了防止更多人上当,我罗列几个我收到的私信,供大家参考(再次警告,不要觉得自己很聪明,能从骗子的手中抢食吃)Hi! i'm a student I received a sum of 6800USDT(trx20) but I don't know how to sell USDT to get USD into my b...
SeeDAO 元规则
注:这不是SeeDAO元规则的原始出处,只是我为了测试Mirror导入功能而新建的一个备份。原始文档地址是 https://mirror.xyz/seedao.eth/oYvqxPztTXrE0C_HuW9b1ua5S1TTvZ_hoBTi6hwQk18论坛提案链接: https://forum.seedao.xyz/thread/39871序言SeeDAO 是一个基于区块链的数字城邦,其表现形态为去中心化的数字网络(SeeDAO Network)和映射在全球各地的物理据点 ( SeeShore ),由SeeDAO成员共建、共治、共享。 作为一个数字城邦,SeeDAO强调人的重要性,强调代码服务于人。除金库里的流动性资产外,由SeeDAO成员在共同创造过程中凝结的社会关系、积累的公共资产、形成的组织规则和历史记忆,均为SeeDAO的宝贵财富。 SeeDAO致力于满足成员对经济基础、公共服务与治理等多方面的诉求,促进身在城邦中人的自由发展。第一章:SeeDAO成员的权利与义务成员是SeeDAO基本单元。SeeDAO的一切权限、责任、收益、风险,最终与SeeDAO成员相关。满足以下任...

Subscribe to Alex

Subscribe to Alex
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
以太坊mempool(内存池)是已经提交、随时可以打包、但还没有成功打包的交易,它随时都可能被打包广播。
默认mempool是公开的,任何人都可以访问。这给MEV提供了非常重要的基础。而监听mempool里的交易,也是非常重要非常基础的操作。
这一切,靠的是geth提供的API(不是标准API ,是geth特有的API)。
标准API列表:
https://ethereum.github.io/execution-apis/api-documentation/
geth特有API eth_subscribe
https://geth.ethereum.org/docs/interacting-with-geth/rpc/pubsub#newpendingtransactions
所谓的“监听”,其实就是订阅(subscribe),利用eth_subscribe接口订阅类型为newPendingTransactions的消息
发送请求
{
"id": 1,
"jsonrpc": "2.0",
"method": "eth_subscribe",
"params": [
"newPendingTransactions"
]
}
响应
{"jsonrpc":"2.0","id":2,"result":"0xc3b33aa549fb9a60e95d21862596617c"}
{
"jsonrpc":"2.0",
"method":"eth_subscription",
"params":{
"subscription":"0xc3b33aa549fb9a60e95d21862596617c",
"result":"0xd6fdc5cc41a9959e922f30cb772a9aef46f4daea279307bc5f7024edc4ccd7fa"
}
}
它会返回一个标示(用于取消订阅),之后如果有新的pending的交易,会把交易hash发送过来。只有交易hash没有细节,其他的参数,需要你自己再查询一次。
Go代码如下
package main
import (
"context"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/ethclient/gethclient"
"github.com/ethereum/go-ethereum/rpc"
"log"
"os"
"os/signal"
"syscall"
)
func watch() {
wss := os.Getenv("WSS")
rc, err := rpc.Dial(wss)
if err != nil {
log.Printf("failed to dial: %v", err)
return
}
log.Printf("connected to %s", wss)
gc := gethclient.New(rc)
hashes := make(chan common.Hash, 100)
_, err = gc.SubscribePendingTransactions(context.Background(), hashes)
if err != nil {
log.Printf("failed to SubscribePendingTransactions: %v", err)
return
}
log.Print("subscribed pending txs now")
for {
select {
case hash := <-hashes:
log.Printf("received tx %s", hash)
}
}
}
func main() {
go watch()
signalChan := make(chan os.Signal, 1)
signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM)
<-signalChan
}
当然了,先知道hash其实什么也干不了,还需要再查询一次,拿到具体的数据才行。
好消息是,从v1.11.0,geth直接就添加了新的SubscribeFullPendingTransactions接口,可以直接拿到transaction了,简直不要太幸福。
package main
import (
"context"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/ethclient/gethclient"
"github.com/ethereum/go-ethereum/rpc"
"log"
"os"
"os/signal"
"syscall"
)
func watch() {
wss := os.Getenv("WSS")
rc, err := rpc.Dial(wss)
if err != nil {
log.Printf("failed to dial: %v", err)
return
}
log.Printf("connected to %s", wss)
gc := gethclient.New(rc)
transactions := make(chan *types.Transaction, 100)
_, err = gc.SubscribeFullPendingTransactions(context.Background(), transactions)
if err != nil {
log.Printf("failed to SubscribePendingTransactions: %v", err)
return
}
log.Print("subscribed pending txs now")
for {
select {
case transaction := <-transactions:
// 这里的transaction是完整数据,可以直接使用
txBytes, err := transaction.MarshalJSON()
if err != nil {
continue
}
log.Printf("received tx %s", string(txBytes))
}
}
}
func main() {
go watch()
signalChan := make(chan os.Signal, 1)
signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM)
<-signalChan
}
打印的transaction内容是如下格式
{
"type": "0x2",
"chainId": "0x14a33",
"nonce": "0x5e1",
"to": "0x290b54a504a3b0cb21888e3e405afc1b2946598c",
"gas": "0xdc2d",
"gasPrice": null,
"maxPriorityFeePerGas": "0x59682f00",
"maxFeePerGas": "0x59682f64",
"value": "0x0",
"input": "0xa9059cbb000000000000000000000000f3902d46ffa3730f4733b19e5fca5acd8057316a0000000000000000000000000000000000000000000000000de0b6b3a7640000",
"accessList": [],
"v": "0x1",
"r": "0x5783d7fc6ac88e39593de34eff58b059d2bb6045227eea277969a0c4778ec63",
"s": "0x591ac696363bcaa4943b30ab680c8a7df58d27dd1b28f1a90e0345aaca0cd0b4",
"hash": "0xb0d0b538207efc9da6daf97b80e1e5e6c3a18a8a7aa45c84f413af3b0ea2c89d"
}
可见是签过名直接可以用的。
祝朋友们玩得开心,可以加我推特交流 @alexgiantwhale
以太坊mempool(内存池)是已经提交、随时可以打包、但还没有成功打包的交易,它随时都可能被打包广播。
默认mempool是公开的,任何人都可以访问。这给MEV提供了非常重要的基础。而监听mempool里的交易,也是非常重要非常基础的操作。
这一切,靠的是geth提供的API(不是标准API ,是geth特有的API)。
标准API列表:
https://ethereum.github.io/execution-apis/api-documentation/
geth特有API eth_subscribe
https://geth.ethereum.org/docs/interacting-with-geth/rpc/pubsub#newpendingtransactions
所谓的“监听”,其实就是订阅(subscribe),利用eth_subscribe接口订阅类型为newPendingTransactions的消息
发送请求
{
"id": 1,
"jsonrpc": "2.0",
"method": "eth_subscribe",
"params": [
"newPendingTransactions"
]
}
响应
{"jsonrpc":"2.0","id":2,"result":"0xc3b33aa549fb9a60e95d21862596617c"}
{
"jsonrpc":"2.0",
"method":"eth_subscription",
"params":{
"subscription":"0xc3b33aa549fb9a60e95d21862596617c",
"result":"0xd6fdc5cc41a9959e922f30cb772a9aef46f4daea279307bc5f7024edc4ccd7fa"
}
}
它会返回一个标示(用于取消订阅),之后如果有新的pending的交易,会把交易hash发送过来。只有交易hash没有细节,其他的参数,需要你自己再查询一次。
Go代码如下
package main
import (
"context"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/ethclient/gethclient"
"github.com/ethereum/go-ethereum/rpc"
"log"
"os"
"os/signal"
"syscall"
)
func watch() {
wss := os.Getenv("WSS")
rc, err := rpc.Dial(wss)
if err != nil {
log.Printf("failed to dial: %v", err)
return
}
log.Printf("connected to %s", wss)
gc := gethclient.New(rc)
hashes := make(chan common.Hash, 100)
_, err = gc.SubscribePendingTransactions(context.Background(), hashes)
if err != nil {
log.Printf("failed to SubscribePendingTransactions: %v", err)
return
}
log.Print("subscribed pending txs now")
for {
select {
case hash := <-hashes:
log.Printf("received tx %s", hash)
}
}
}
func main() {
go watch()
signalChan := make(chan os.Signal, 1)
signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM)
<-signalChan
}
当然了,先知道hash其实什么也干不了,还需要再查询一次,拿到具体的数据才行。
好消息是,从v1.11.0,geth直接就添加了新的SubscribeFullPendingTransactions接口,可以直接拿到transaction了,简直不要太幸福。
package main
import (
"context"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/ethclient/gethclient"
"github.com/ethereum/go-ethereum/rpc"
"log"
"os"
"os/signal"
"syscall"
)
func watch() {
wss := os.Getenv("WSS")
rc, err := rpc.Dial(wss)
if err != nil {
log.Printf("failed to dial: %v", err)
return
}
log.Printf("connected to %s", wss)
gc := gethclient.New(rc)
transactions := make(chan *types.Transaction, 100)
_, err = gc.SubscribeFullPendingTransactions(context.Background(), transactions)
if err != nil {
log.Printf("failed to SubscribePendingTransactions: %v", err)
return
}
log.Print("subscribed pending txs now")
for {
select {
case transaction := <-transactions:
// 这里的transaction是完整数据,可以直接使用
txBytes, err := transaction.MarshalJSON()
if err != nil {
continue
}
log.Printf("received tx %s", string(txBytes))
}
}
}
func main() {
go watch()
signalChan := make(chan os.Signal, 1)
signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM)
<-signalChan
}
打印的transaction内容是如下格式
{
"type": "0x2",
"chainId": "0x14a33",
"nonce": "0x5e1",
"to": "0x290b54a504a3b0cb21888e3e405afc1b2946598c",
"gas": "0xdc2d",
"gasPrice": null,
"maxPriorityFeePerGas": "0x59682f00",
"maxFeePerGas": "0x59682f64",
"value": "0x0",
"input": "0xa9059cbb000000000000000000000000f3902d46ffa3730f4733b19e5fca5acd8057316a0000000000000000000000000000000000000000000000000de0b6b3a7640000",
"accessList": [],
"v": "0x1",
"r": "0x5783d7fc6ac88e39593de34eff58b059d2bb6045227eea277969a0c4778ec63",
"s": "0x591ac696363bcaa4943b30ab680c8a7df58d27dd1b28f1a90e0345aaca0cd0b4",
"hash": "0xb0d0b538207efc9da6daf97b80e1e5e6c3a18a8a7aa45c84f413af3b0ea2c89d"
}
可见是签过名直接可以用的。
祝朋友们玩得开心,可以加我推特交流 @alexgiantwhale
No activity yet