io.net部署教程 强烈建议大家参与
本文主要从技术角度详细讲解了如何部署io.net,以及如何解决各种问题。项目地址如下,是否部署投资等DYOR~ https://io.net/1. 注册,添加worker从上面官网点进去之后,注册登录点击官网左上角,会出现一长列,点击worker,中间会出现链接新的worker。按照你的机器选择对应的配置,一直到底下出现命令行,也就是核心的第5步和第6步。理论上mac和ubuntu用户直接在shell命令输入网页中的命令,即可自动部署。但是因为某些地区网络问题,会出现无法部署的情况,下面教程主要解决这个问题。2. 自建代理工具请在合法合规地区使用,请确保遵守当地法律法规,以下教程所有程序都是开源代码。申明:在加拿大以及美国合法使用VPN是保护公民隐私的合法技术 首先注册一个vps账号,(新用户走下面的链接有200U的免费额度) 注册好能使用之后,创建一个droplets,地区选离你近的,系统选择ubuntu20.04CPU:base ,Regular Disk type: SSD,密码设置你root账户的登录密码。总花销是**$6.00/month,有1t流量,一般情况下目前分不...
基友按头加号梭哈项目
一: Linera 积分任务 加入公会拿角色 主网持有0.001 ETH 5U过验证 https://guild.xyz/linera 测试网积分任务 https://portal.linera.net/quests 二: lrys 朋友劝我银河继续跟并梭哈 测试网领水 https://irys.xyz/faucet 积分任务能做的全做 https://bitomokx.irys.xyz/ https://app.galxe.com/quest/Irys?sort=Trending NFT mint https://omnihub.xyz/collection/irys-testnet/0x2E7eaC00E4c7D971A974918E3d4b8484Ea6f257e?ref=0x1A80B88dB87868D9b52B5B00349045563029535C 三 ZKV 每天小游戏 月底结束 测试网积分能拿的都拿了,游戏塞点小号试试 https://space-invaders.zkverify.io/?utm_source=zkVerify&utm_medium=Socia...
近期恶补表单
一:加急 Edgen 1100万融资 注册,拉人头,每日签到。 https://www.edgen.tech/aura/7Vy02 二:加急 Youmio 测试网注册 https://testnet.youmio.ai/apply 三:加急 D3 银河NFT领取: https://app.galxe.com/quest/D3/GC64Rt6CAA 域名购买 https://dashboard-testnet.doma.xyz/ 邮箱拉人头 https://start-testnet.doma.xyz?referralCode=uf67hlaigsoqk 四:答题测试网 答案小群内找下文件包 脚本群友有 https://www.hackquest.io/zh-cn 五: Haust Network Q4主网 测试网教程 跟着官方教程做 https://docs.haust.network/testnet/haust-network-testnet-quests-and-reward-system六:chain bnb签到 https://chainopera.ai/quest/
OKX丨空投猎人丨社区情报收集者丨撸毛教程无私分享丨拒绝偷撸丨OKX
io.net部署教程 强烈建议大家参与
本文主要从技术角度详细讲解了如何部署io.net,以及如何解决各种问题。项目地址如下,是否部署投资等DYOR~ https://io.net/1. 注册,添加worker从上面官网点进去之后,注册登录点击官网左上角,会出现一长列,点击worker,中间会出现链接新的worker。按照你的机器选择对应的配置,一直到底下出现命令行,也就是核心的第5步和第6步。理论上mac和ubuntu用户直接在shell命令输入网页中的命令,即可自动部署。但是因为某些地区网络问题,会出现无法部署的情况,下面教程主要解决这个问题。2. 自建代理工具请在合法合规地区使用,请确保遵守当地法律法规,以下教程所有程序都是开源代码。申明:在加拿大以及美国合法使用VPN是保护公民隐私的合法技术 首先注册一个vps账号,(新用户走下面的链接有200U的免费额度) 注册好能使用之后,创建一个droplets,地区选离你近的,系统选择ubuntu20.04CPU:base ,Regular Disk type: SSD,密码设置你root账户的登录密码。总花销是**$6.00/month,有1t流量,一般情况下目前分不...
基友按头加号梭哈项目
一: Linera 积分任务 加入公会拿角色 主网持有0.001 ETH 5U过验证 https://guild.xyz/linera 测试网积分任务 https://portal.linera.net/quests 二: lrys 朋友劝我银河继续跟并梭哈 测试网领水 https://irys.xyz/faucet 积分任务能做的全做 https://bitomokx.irys.xyz/ https://app.galxe.com/quest/Irys?sort=Trending NFT mint https://omnihub.xyz/collection/irys-testnet/0x2E7eaC00E4c7D971A974918E3d4b8484Ea6f257e?ref=0x1A80B88dB87868D9b52B5B00349045563029535C 三 ZKV 每天小游戏 月底结束 测试网积分能拿的都拿了,游戏塞点小号试试 https://space-invaders.zkverify.io/?utm_source=zkVerify&utm_medium=Socia...
近期恶补表单
一:加急 Edgen 1100万融资 注册,拉人头,每日签到。 https://www.edgen.tech/aura/7Vy02 二:加急 Youmio 测试网注册 https://testnet.youmio.ai/apply 三:加急 D3 银河NFT领取: https://app.galxe.com/quest/D3/GC64Rt6CAA 域名购买 https://dashboard-testnet.doma.xyz/ 邮箱拉人头 https://start-testnet.doma.xyz?referralCode=uf67hlaigsoqk 四:答题测试网 答案小群内找下文件包 脚本群友有 https://www.hackquest.io/zh-cn 五: Haust Network Q4主网 测试网教程 跟着官方教程做 https://docs.haust.network/testnet/haust-network-testnet-quests-and-reward-system六:chain bnb签到 https://chainopera.ai/quest/
OKX丨空投猎人丨社区情报收集者丨撸毛教程无私分享丨拒绝偷撸丨OKX

Subscribe to 小麻不算麻

Subscribe to 小麻不算麻
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
PHASE 2
B 在以太坊网络上实现快速且经济高效的交易
A Arbitrum One 和Arbitrum Nova
C 将以太坊的计算和存储转移至链下
C Optimistic Rollups
B 执行和管理 Arbitrum 链上的操作和状态
C 操作系统
B L1 资源费用和 L2 资源费用
D 以上所有
C 降低费用、增加容量和整体更快的体验
A
B 当前状态和下一笔交易
B 更新区块链的当前状态
B
C
A
B
A
A
C 直接使用 Geth 实现
C 创建一个被信任的小组,即数据可用性委员会
A 存储和管理区块链上的数据
B 数据块的哈希值、过期时间和签名证据
B Sequencer API和REST AP
A 数据提交、签名过程、创建和发布 DACert
B 数据的可用性
C 游戏和社交媒体应用
B 一个 Layer3 解决方案
C 允许使用任意 ERC-20 代币作为原生 gas 代币支付 gas
C 允许使用多种编程语言开发 EVM 兼容智能合约
A
B 编码、编译、执行、验证
C 提供更快的计算速度、更低的 gas 成本,并启用新的使用案例
C 两者都使用 Nitro 技术栈,但实现不同的协议
Quiz 1
ABC
A
B
let mut x = 1;
x += 2;
assert_eq!(x, 3);
assert_eq!(y, 2);
assert_eq!(i8::MAX, 127);
assert_eq!(u8::MAX, 255);
assert_eq!(size_of_val(&c1),4);
assert_eq!(size_of_val(&c2),4);
x + y
x + 2
fn sum(x: i32, y: i32) -> i32 {
A
A
B
let s2 = s1;
let y = &x;
let p = &mut s;
A
let slice2 = &s[..2];
let slice = &s[0..3];
B
s.push('!');
let slice = &s[..5];
let t: (u8, u16, i64, &str, String) = (1u8, 2u16, 3i64, "hello", String::from(", world"));
assert_eq!(t.3, "rust");
let mut p = Person {
p.name = String::from("rust");
Direction::East => println!("Moving East"),
let arr: [i32 ; 5] = [1, 2, 3, 4, 5];
let arr: [char; 3] = ['中', 'b', 'c'];
let list: [i32; 100] = [1;100] ;
let v2 = Vec::from([1, 2, 3]);
*i += 1
let mut student_map2 = student_arr.into_iter().collect();
assert_eq!(*alice_grade, 100);
for name in &names {
break
Message::Move{x: a, y: b} => {
assert_eq!(g, 255);
assert_eq!(b, 0);
fn new() -> Self { Mario { is_small : false , coins : 100 , } }
x: T,
fn tweet(&self) -> String;
B
A
type AssociatedType = i32;
B
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
let b = divide(a, a + num)?;
Ok(result) => println!("Result:{}", result),
A
macro_rules!
A
derive
A
proc_macro
A
cargo new
cargo build
cargo run
cargo new bulls_and_cows
rand = "0.8"
use rand::Rng;
let secret_number = rand::thread_rng().gen_range(1..11);
let mut attempts = 0;
use std::io;
let mut guess = String::new();
io::stdin().read_line(&mut guess);
.expect("Oops! Something goes wrong");
loop
let guess = guess.trim();
let guess: u32 = match guess.trim().parse()
Ok(num) => num,
Err(_) => { println!("Please input valid number"); continue; }
Ordering::Less
A
A
self.number.get()
self.number.set(new_number);
A
#[derive(Erase)]
B
#[external]
A
#[entrypoint]
#[payable]
A
#[borrow]
B
cargo stylus export-abi
B
B
A
A
delegate_call
A
A
evm::log
msg::sender()
A
A
A
A
cargo stylus check
--estimate-gas-only
rustc -vV | grep host
A
Quiz 1
A
A
B
#[payable]
A
A
A
#![cfg_attr(not(feature = "export-abi"), no_main, no_std)]
extern crate alloc;
#[global_allocator]
static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT;
mod erc20;
use crate::erc20::{Erc20, Erc20Params};
use alloc::vec::Vec;
use stylus_sdk::{alloy_primitives::U256, msg, prelude::*};
struct StylusERC20Params;
impl Erc20Params for StylusERC20Params {}
const NAME: &'static str = "ERC20 Example";
const SYMBOL: &'static str = "EE";
const DECIMALS: u8 = 18;
sol_storage!
#[entrypoint]
#[borrow]
Erc20 erc20; #[external] #[inherit(Erc20)] impl StylusERC20 {} pub fn mint(&mut self, amount: U256) -> Result<(), Vec> {} self.erc20.mint(msg::sender(), amount); Ok(()) 在 Arbitrum 上实现 NFT(Erc721) D #![cfg_attr(not(any(feature = "export-abi", test)), no_main)] extern crate alloc; static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; use stylus_sdk::{msg, prelude::*}; mod erc721; use crate::erc721::{Erc721, Erc721Params}; struct StylusNFTParams; const NAME: &'static str = "StylusNFT"; const SYMBOL: &'static str = "SNFT"; 下面这是一个答案 impl StylusNFT { } 上面这是一个答案 #[external] #[inherit(Erc721)] sol_storage! {} struct StylusNFT {} #[entrypoint] Erc721 erc721; #[borrow] uint256 counter; use alloy_primitives::{Address, U256}; use erc721::{Erc721Error, NotAuthorized}; pub fn safe_mint(&mut self, to: Address) -> Result<(), Erc721Error> {} let token_id = self.counter.get(); self.erc721._safe_mint(to, token_id)?; let new_value = token_id + U256::from(1); self.counter.set(new_value); Ok(()) Arbitrum Stylus 智能金库 A #![cfg_attr(not(feature = "export-abi"), no_main, no_std)] extern crate alloc; #[global_allocator] use crate::erc20::{Erc20, Erc20Params}; use alloc::vec::Vec; use stylus_sdk::{alloy_primitives::{U256, Address}, call, call::RawCall, msg, contract, function_selector, prelude::*}; impl Erc20Params for VaultParams const NAME: &'static str = "Vault Example"; const SYMBOL: &'static str = "VAULT"; const DECIMALS: u8 = 18; sol_storage! #[entrypoint] struct Vault {} address asset; uint totalSupply; #[borrow] Erc20 erc20; #[external] #[inherit(Erc20)] impl Vault {} pub fn setAsset(&mut self, _asset: Address) -> Result<Address, Vec> {} self.asset.set(_asset); Ok(_asset) #[payable] pub fn deposit(&mut self, amount: U256) -> Result<(), Vec> {} let selector = function_selector!("transferFrom(address,address,uint256)"); let data = []; &selector[..], &msg::sender().into_array(), &self.asset.get().into_array(), &amount.to_be_bytes::<32>(), .concat(); RawCall::new().call(self.asset.get(), &data); let supply = self.totalSupply.get(); let shares = if supply == U256::ZERO { amount } else { amount.checked_mul(supply).ok_or("Overflow")?.checked_div(self.totalAssets()?).ok_or("Divide by zero")?}; Ok(()) pub fn withdraw(&mut self, amount: U256) -> Result<(), Vec> {} let supply = self.totalSupply.get(); let shares = if supply == U256::ZERO {amount} else { amount.checked_mul(supply).ok_or("Overflow")?.checked_div(self.totalAssets()?).ok_or("Divide by zero")?}; self.erc20.burn(msg::sender(), shares)?; call::transfer_eth(msg::sender(), amount) pub fn asset(&self) -> Result<Address, Vec> {} Ok(self.asset.get()) pub fn totalAssets(&self) -> Result<U256, Vec> {} Ok(self.totalSupply.get())
PHASE 2
B 在以太坊网络上实现快速且经济高效的交易
A Arbitrum One 和Arbitrum Nova
C 将以太坊的计算和存储转移至链下
C Optimistic Rollups
B 执行和管理 Arbitrum 链上的操作和状态
C 操作系统
B L1 资源费用和 L2 资源费用
D 以上所有
C 降低费用、增加容量和整体更快的体验
A
B 当前状态和下一笔交易
B 更新区块链的当前状态
B
C
A
B
A
A
C 直接使用 Geth 实现
C 创建一个被信任的小组,即数据可用性委员会
A 存储和管理区块链上的数据
B 数据块的哈希值、过期时间和签名证据
B Sequencer API和REST AP
A 数据提交、签名过程、创建和发布 DACert
B 数据的可用性
C 游戏和社交媒体应用
B 一个 Layer3 解决方案
C 允许使用任意 ERC-20 代币作为原生 gas 代币支付 gas
C 允许使用多种编程语言开发 EVM 兼容智能合约
A
B 编码、编译、执行、验证
C 提供更快的计算速度、更低的 gas 成本,并启用新的使用案例
C 两者都使用 Nitro 技术栈,但实现不同的协议
Quiz 1
ABC
A
B
let mut x = 1;
x += 2;
assert_eq!(x, 3);
assert_eq!(y, 2);
assert_eq!(i8::MAX, 127);
assert_eq!(u8::MAX, 255);
assert_eq!(size_of_val(&c1),4);
assert_eq!(size_of_val(&c2),4);
x + y
x + 2
fn sum(x: i32, y: i32) -> i32 {
A
A
B
let s2 = s1;
let y = &x;
let p = &mut s;
A
let slice2 = &s[..2];
let slice = &s[0..3];
B
s.push('!');
let slice = &s[..5];
let t: (u8, u16, i64, &str, String) = (1u8, 2u16, 3i64, "hello", String::from(", world"));
assert_eq!(t.3, "rust");
let mut p = Person {
p.name = String::from("rust");
Direction::East => println!("Moving East"),
let arr: [i32 ; 5] = [1, 2, 3, 4, 5];
let arr: [char; 3] = ['中', 'b', 'c'];
let list: [i32; 100] = [1;100] ;
let v2 = Vec::from([1, 2, 3]);
*i += 1
let mut student_map2 = student_arr.into_iter().collect();
assert_eq!(*alice_grade, 100);
for name in &names {
break
Message::Move{x: a, y: b} => {
assert_eq!(g, 255);
assert_eq!(b, 0);
fn new() -> Self { Mario { is_small : false , coins : 100 , } }
x: T,
fn tweet(&self) -> String;
B
A
type AssociatedType = i32;
B
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
let b = divide(a, a + num)?;
Ok(result) => println!("Result:{}", result),
A
macro_rules!
A
derive
A
proc_macro
A
cargo new
cargo build
cargo run
cargo new bulls_and_cows
rand = "0.8"
use rand::Rng;
let secret_number = rand::thread_rng().gen_range(1..11);
let mut attempts = 0;
use std::io;
let mut guess = String::new();
io::stdin().read_line(&mut guess);
.expect("Oops! Something goes wrong");
loop
let guess = guess.trim();
let guess: u32 = match guess.trim().parse()
Ok(num) => num,
Err(_) => { println!("Please input valid number"); continue; }
Ordering::Less
A
A
self.number.get()
self.number.set(new_number);
A
#[derive(Erase)]
B
#[external]
A
#[entrypoint]
#[payable]
A
#[borrow]
B
cargo stylus export-abi
B
B
A
A
delegate_call
A
A
evm::log
msg::sender()
A
A
A
A
cargo stylus check
--estimate-gas-only
rustc -vV | grep host
A
Quiz 1
A
A
B
#[payable]
A
A
A
#![cfg_attr(not(feature = "export-abi"), no_main, no_std)]
extern crate alloc;
#[global_allocator]
static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT;
mod erc20;
use crate::erc20::{Erc20, Erc20Params};
use alloc::vec::Vec;
use stylus_sdk::{alloy_primitives::U256, msg, prelude::*};
struct StylusERC20Params;
impl Erc20Params for StylusERC20Params {}
const NAME: &'static str = "ERC20 Example";
const SYMBOL: &'static str = "EE";
const DECIMALS: u8 = 18;
sol_storage!
#[entrypoint]
#[borrow]
Erc20 erc20; #[external] #[inherit(Erc20)] impl StylusERC20 {} pub fn mint(&mut self, amount: U256) -> Result<(), Vec> {} self.erc20.mint(msg::sender(), amount); Ok(()) 在 Arbitrum 上实现 NFT(Erc721) D #![cfg_attr(not(any(feature = "export-abi", test)), no_main)] extern crate alloc; static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; use stylus_sdk::{msg, prelude::*}; mod erc721; use crate::erc721::{Erc721, Erc721Params}; struct StylusNFTParams; const NAME: &'static str = "StylusNFT"; const SYMBOL: &'static str = "SNFT"; 下面这是一个答案 impl StylusNFT { } 上面这是一个答案 #[external] #[inherit(Erc721)] sol_storage! {} struct StylusNFT {} #[entrypoint] Erc721 erc721; #[borrow] uint256 counter; use alloy_primitives::{Address, U256}; use erc721::{Erc721Error, NotAuthorized}; pub fn safe_mint(&mut self, to: Address) -> Result<(), Erc721Error> {} let token_id = self.counter.get(); self.erc721._safe_mint(to, token_id)?; let new_value = token_id + U256::from(1); self.counter.set(new_value); Ok(()) Arbitrum Stylus 智能金库 A #![cfg_attr(not(feature = "export-abi"), no_main, no_std)] extern crate alloc; #[global_allocator] use crate::erc20::{Erc20, Erc20Params}; use alloc::vec::Vec; use stylus_sdk::{alloy_primitives::{U256, Address}, call, call::RawCall, msg, contract, function_selector, prelude::*}; impl Erc20Params for VaultParams const NAME: &'static str = "Vault Example"; const SYMBOL: &'static str = "VAULT"; const DECIMALS: u8 = 18; sol_storage! #[entrypoint] struct Vault {} address asset; uint totalSupply; #[borrow] Erc20 erc20; #[external] #[inherit(Erc20)] impl Vault {} pub fn setAsset(&mut self, _asset: Address) -> Result<Address, Vec> {} self.asset.set(_asset); Ok(_asset) #[payable] pub fn deposit(&mut self, amount: U256) -> Result<(), Vec> {} let selector = function_selector!("transferFrom(address,address,uint256)"); let data = []; &selector[..], &msg::sender().into_array(), &self.asset.get().into_array(), &amount.to_be_bytes::<32>(), .concat(); RawCall::new().call(self.asset.get(), &data); let supply = self.totalSupply.get(); let shares = if supply == U256::ZERO { amount } else { amount.checked_mul(supply).ok_or("Overflow")?.checked_div(self.totalAssets()?).ok_or("Divide by zero")?}; Ok(()) pub fn withdraw(&mut self, amount: U256) -> Result<(), Vec> {} let supply = self.totalSupply.get(); let shares = if supply == U256::ZERO {amount} else { amount.checked_mul(supply).ok_or("Overflow")?.checked_div(self.totalAssets()?).ok_or("Divide by zero")?}; self.erc20.burn(msg::sender(), shares)?; call::transfer_eth(msg::sender(), amount) pub fn asset(&self) -> Result<Address, Vec> {} Ok(self.asset.get()) pub fn totalAssets(&self) -> Result<U256, Vec> {} Ok(self.totalSupply.get())
No activity yet