Cyber Security researcher
Cyber Security researcher

Subscribe to R0chGh0st

Subscribe to R0chGh0st
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
(1)撸空投,SHM链的swap,基本就是swap以下,add一下,发推特就可以领faucet
(2)参与了galaxy的一个活动,可以领取oat,刚开始领取的时候报错:
err: 1004:Get total claim count from formula fail; 2)err: 10000:failed to get cred output with cred id 185951744732864512; err: rpc error: code = Unknown desc = 10000: rpc error: code = Unavailable desc = no healthy upstream
后来经过官方提示,删除了galaxy站点的cookie后,恢复正常
https://galaxy.eco/Biteye/campaign/GC6zSUtVBn
(3)研究了一下基于默克尔树的白名单验证方法,参考的是下面这篇文章:
https://medium.com/@ItsCuzzo/using-merkle-trees-for-nft-whitelists-523b58ada3f9
其实默克尔树我们都很熟悉,他在以往也用于做过这样的权限认证工作,比如用户的机顶盒权限验证,用户作为叶子结点,需要对外提供一组Hash,只要能提供到,就可以通过节点验证,我实现了原型代码,如下所示,基本理解了默克尔树的构造方案,没有自行构造一棵树,而是用库生成的。
let hre = require("hardhat");
let { MerkleTree } = require("merkletreejs");
let { keccak256 } = require("keccak256");
let whitelistAddress =
["0xcd404712d55d839902a9f4b5935f514829378728",
"0xCCC26c4d84e997904Dc204d83ea912278C8b60a2",
"0x72dA088a22D1ebcD790765977b09741bE0AB2819",
"0xc02055721cD6a553Ac58487ABD1E085CFeF24521",
"0x9f63389D0eb66FCc9D9631Cc5D0FcFe594DCb749",
"0xb75f07A2749a312496788a7b73fDD386EA529F2B"];
let leafNodes = whitelistAddress.map(addr => hre.ethers.utils.keccak256(addr))
console.log(leafNodes);
let Merkle_Tree = new MerkleTree(leafNodes, hre.ethers.utils.keccak256)//, { SortPairs: true });
console.log(Merkle_Tree.toString());
let hashing_proof = leafNodes[0];
console.log(Merkle_Tree.getHexProof(hashing_proof));
(1)撸空投,SHM链的swap,基本就是swap以下,add一下,发推特就可以领faucet
(2)参与了galaxy的一个活动,可以领取oat,刚开始领取的时候报错:
err: 1004:Get total claim count from formula fail; 2)err: 10000:failed to get cred output with cred id 185951744732864512; err: rpc error: code = Unknown desc = 10000: rpc error: code = Unavailable desc = no healthy upstream
后来经过官方提示,删除了galaxy站点的cookie后,恢复正常
https://galaxy.eco/Biteye/campaign/GC6zSUtVBn
(3)研究了一下基于默克尔树的白名单验证方法,参考的是下面这篇文章:
https://medium.com/@ItsCuzzo/using-merkle-trees-for-nft-whitelists-523b58ada3f9
其实默克尔树我们都很熟悉,他在以往也用于做过这样的权限认证工作,比如用户的机顶盒权限验证,用户作为叶子结点,需要对外提供一组Hash,只要能提供到,就可以通过节点验证,我实现了原型代码,如下所示,基本理解了默克尔树的构造方案,没有自行构造一棵树,而是用库生成的。
let hre = require("hardhat");
let { MerkleTree } = require("merkletreejs");
let { keccak256 } = require("keccak256");
let whitelistAddress =
["0xcd404712d55d839902a9f4b5935f514829378728",
"0xCCC26c4d84e997904Dc204d83ea912278C8b60a2",
"0x72dA088a22D1ebcD790765977b09741bE0AB2819",
"0xc02055721cD6a553Ac58487ABD1E085CFeF24521",
"0x9f63389D0eb66FCc9D9631Cc5D0FcFe594DCb749",
"0xb75f07A2749a312496788a7b73fDD386EA529F2B"];
let leafNodes = whitelistAddress.map(addr => hre.ethers.utils.keccak256(addr))
console.log(leafNodes);
let Merkle_Tree = new MerkleTree(leafNodes, hre.ethers.utils.keccak256)//, { SortPairs: true });
console.log(Merkle_Tree.toString());
let hashing_proof = leafNodes[0];
console.log(Merkle_Tree.getHexProof(hashing_proof));
执行效果如下图所示,第一组输出是对每一个地址计算的keccak256结果,第二组输出是一组树,第三组输出是验证钱包地址0xcd404712d55d839902a9f4b5935f514829378728所需要构造的叶子hash信息,叶节点与其兄弟节点合并可以计算出父节点hash,以此类推最终计算获得根hash,通过验证根hash的一致性来验证:

(4)完善论文,补充引言及引用论文,使文章更加完善,基本完成任务。
之前参加会议的会议费还没有报销,今天正好老师在,应该早一点去询问一下走哪个项目报销,这样不被动,以后要更主动一点。
执行效果如下图所示,第一组输出是对每一个地址计算的keccak256结果,第二组输出是一组树,第三组输出是验证钱包地址0xcd404712d55d839902a9f4b5935f514829378728所需要构造的叶子hash信息,叶节点与其兄弟节点合并可以计算出父节点hash,以此类推最终计算获得根hash,通过验证根hash的一致性来验证:

(4)完善论文,补充引言及引用论文,使文章更加完善,基本完成任务。
之前参加会议的会议费还没有报销,今天正好老师在,应该早一点去询问一下走哪个项目报销,这样不被动,以后要更主动一点。
No activity yet