ArchLinux Clash Tun 模式失败问题
使用 Arch linux 时使用 Clash Tun 模式在第一此打开时可用,但重启或者注销后再次启用时无法连接网络
可以使用以下命令, /usr/bin/clash 可以换成自己的 Clash 的路径
1sudo setcap cap_net_bind_service,cap_net_admin=+ep /usr/bin/clash
如果是使用 clash for windows 可以在 clash for windows 解压路径下找到 clash ,并执行 setcap
1resources/static/files/linux/x64/service/clash-core-service
Solidity-3 编译简单合约并交互
初学者和大部分简单的部署都可以使用 Remix 作为开发调试环境
进入 Remix进入 https://remix.ethereum.org/
编辑代码在 File explorer 中编辑 contracts 文件夹中的 1_Storage.sol
1234567891011121314151617181920212223242526272829// SPDX-License-Identifier: GPL-3.0pragma solidity >=0.7.0 <0.9.0;/** * @title Storage * @dev Store & retrieve value in a variable * @custom:dev-run-script ./scripts/deploy_with_ethers.ts */contract Storage { uint256 number; /** * @dev Store value in variable * @param num value to store */ ...
Solidity-2 开发环境
对于 Solidity 的学习,我们有几种方式来开发编译:
Remix https://remix.ethereum.org/
solc-js https://github.com/ethereum/solc-js
solc https://github.com/ethereum/solidity
solc docker https://hub.docker.com/r/ethereum/solc
RemixRemix 是一个 在线的 IDE ,可以作为 Solidity 的开发部署环境,图形化的界面十分方便可以自由的选择需要的编译器、部署的方式部署方式支持:
Javascript VM 部署
链接浏览器插件钱包部署
HardHat 部署
Truffle 部署
Wallet Connect 部署
做开发十分方便,但网站在国外,访问速度较慢
solc-jssolc-js 是通过 solc 的代码编译生成的方便js调用的版本,可以作为命令行工具,但是功能较少不适合直接使用,可以配合 HardHat 、Truffle 框架作为编译工具
在学习过程中,可以使用 solc-js 作为 ...
链接 MetaMask Web3 钱包
A crypto wallet & gateway to blockchain apps
MetaMask 是管理私钥的钱包工具,大多数 EVM生态 Web3 Dapp 都支持使用 MetaMask
MetaMask 的安装方式 有两种手机、浏览器插件,可以在官网查看(不要点击下载直连,因为你不知道这个链接的真实性)
MeteMask 官网
在 Crypto 世界中的私钥是最需要隐藏的,一旦丢失了你的私钥,你的一切资产将可能被人一扫而空MetaMask 用插件方式托管了你的私钥,并在你需要交互的时候给你相应的提示:签名、授权、发起交易这样我们可以在不输入私钥的同时保证了交互的正常(当然,导入助记词或者私钥也会有泄露风险,可以使用硬件钱包)
如果你已经成功安装了 MetaMask 并拥有了自己的钱包地址,你可以使用下方的按钮进行链接Connect Web3.0
当链接成功后,按钮上会显示你的钱包地址
$(document).ready(function(){
$("#post_connect").click(async functio ...
Solidity-1 简要概述
Solidity 是一种面向合约的高级编程语言,用于实现智能合约。Solidity 受到 C++,Python和JavaScript 的影响,旨在针对以太坊虚拟机(EVM)。
什么是以太坊?以太坊是一个分布式的区块链平台可以运行智能合约,可以编写按照编程运行的应用程序。
以太坊虚拟机 (EVM)以太坊虚拟机,也称为 EVM ,是以太坊智能合约的运行时环境。以太坊虚拟机专注于提供安全性,并由世界各地的计算机执行不受信任的代码。
EVM专门防止拒绝服务攻击,并确保程序无法访问彼此的状态,确保可以在没有任何潜在干扰的情况下建立通信。
以太坊虚拟机被设计为基于以太坊的智能合约的运行时环境。
什么是智能合约?智能合约是一种计算机协议,旨在以数字方式促进,验证或执行合同的谈判或履行。智能合约允许在没有第三方的情况下执行可信的交易。这些交易是可跟踪和不可逆的。
Solidity 简单示例让我们从一个简单的 Solidity 源文件开始。以下是一个 Solidity 文件的示例
12345678910111213// SPDX-License-Identifier: GPL-3.0pragma ...
Javascript AMM 模型计算
获取固定输入后的得出的 Token 数getInputPrice 公式Fee 率为 0.3% 计算Javascript 代码
123456789function AMM_get_out_token (input , x, y, fee, tatolfee) { let _input = new BigNumber( input) let _y = new BigNumber( y); let _x = new BigNumber( x); let _fee = new BigNumber(fee); let _tatolfee =new BigNumber( tatolfee) let output = _tatolfee.minus(_fee).times(_input).times(_y).div(_tatolfee.times(_x).plus(_input.times(_tatolfee.minus(_fee)))) return output;}
获取固定输出所需要的 Token 数getOutputPri ...
以太坊系列 - Rust 私钥生成以太坊地址
本文实现 Rust 随机生成私钥/读取字符串私钥、生成公钥、地址
Rust - 以太坊Rust 作为加密世界的宠儿,有各种好用的加密库使用多层嵌套的库,无形中增加风险,也不利于学习使用几个比较基本的库来实现功能可以加深理解
Cargo.toml首先展示下本次用到的库 Cargo.toml
12345[dependencies]libsecp256k1 = { version = "0.7.0"}rand = {version = "0.8.5"}hex = {version = "0.4.3"}sha3 = {version = "0.10.1"}
以太坊 - 私钥与公钥以太坊公钥和私钥的关系:
以太坊的私钥和公钥是采用 secp256k1 算法生成的,可以用随机的 32 byte 私钥来生成对应的公钥对于任意一串 32 byte 的私钥可以生成唯一对应的公钥
生成随机私钥 - Rust 实现使用 Rust 的 ...
Bundlr Network -- 分布式存储的兼容层
警告警告 : Web3尚在初期,任何项目都有风险,投资需谨慎,本文作为经验分享,不作为投资建议
Bundlr Network 介绍Bundlr通过启用对Arweave的多链支持,使分散的永久数据存储变得快速而简单。Arweave是唯一一个永久存储数据的分散式数据链。Bundlr在不牺牲安全性或可用性的情况下,将Arweave上执行的交易量增加了4000%,并且在上传数据方面的速度提高了约3000倍。Bundlr具有无限可扩展性,其技术允许用户访问永久数据存储,并具有即时和有保证的交易最终性。它支持多种加密货币,包括以太坊,Solana,Polygon和Avalanche。
Web2.0-存储
电子时代如果没有一个安全的存储设备,那么你什么都留不下
记录,是人类进步最根本的途径,记录代表着传承,知识可以代代相传,如果少了古代流传下来的诗书,医书,以及各种著作,人类的文明不会如此璀璨,人们只会一遍一遍的造同样的轮子。
对以前的人来说,写在纸上、刻在石头上是比较好的记录方式,那么到了电子时代,我们每天产生的数据量极为巨大,这时我们会产生思考,我们想要保留些什么?哪些是可以被舍 ...
Windows 上用国内源安装Rust
一、获取安装包
在Rust官网上下载安装包官网链接:https://www.rust-lang.org/zh-CN/二、修改环境变量
在安装包所在目录运行powershell,并修改环境变量为国内源1$env:RUSTUP_DIST_SERVER="https://mirrors.tuna.tsinghua.edu.cn/rustup"
三、运行安装包
开始安装,并选择自己需要的编译器环境1.\rustup-init.exe
简单的CSS
一、什么是 CSS?
CSS 指层叠样式表 (Cascading Style Sheets)
样式定义如何显示 HTML 元素
样式通常存储在样式表中
把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题
外部样式表可以极大提高工作效率
外部样式表通常存储在 CSS 文件中
多个样式定义可层叠为一个代码演示
import { h, ref } from 'vue'
const StyleDiv = (_, ctx) => h(
'div',
{
class: 'sample-css-test',
},
ctx.slots.default()
)
export default {
components: {
StyleDiv,
},
setup() {
}
}
.sample-css-test p {
color:red;
text-align:center;
}
12345678<style>p { color:red; text-align:cente ...