区块链三种网络地址btc\eth\fil

本文介绍了BTC地址的不同格式,包括1开头的P2PKH地址、3开头的P2SH地址和bc1开头的BECH32地址,并解释了这些地址的特点及如何影响交易手续费。此外,还介绍了BTC私钥的不同格式以及以太坊和Filecoin地址的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BTC地址不同格式的区别
前言:本文内容总结于其他网络资料以及个人实际操作所得。
一 不同格式地址简介
1 开头的地址,是 P2PKH(pay-to-public-key-hash) 地址,也就是最原始的地址,称之为普通的BTC地址;
3开头的地址,是P2SH(pay-to-script-hash)地址,内部也需要是segwit,即隔离见证地址;
bc1开头的地址,是BECH32编码的地址,是专为segwit开发的地址格式,也是隔离见证地址。
3开头的地址和bc1开头的地址,相比于1开头的地址,更小且手续费更低,可提升BTC区块打包速度。
二 其他简单介绍
同一个BTC私钥虽然对应着3个不同的BTC地址,但是这3个地址都是正常地址,都是可以使用的。
3个地址的"余额"是彼此独立的,假如分别向这3个地址转账1BTC,那么在区块链浏览器查询地址"余额"的时候,每个地址的"余额"也分别会显示1BTC,而不是3BTC。
BTC地址没有余额的概念,只有UTXO(unspent transaction output),调用节点查询余额 getbalance 参数是account,其背后是调用了另外一个API -> listtransactions 参数是该account,然后统计所有记录的 amount,全部加起来就是返回的余额结果。
每次往钱包节点导入一个私钥(指定account),该account下都会生成对应的3个地址,火币钱包是1开头的。
三 顺便提一下BTC私钥的不同格式
原始格式 32 字节,256位的0或者1
hex格式,hex格式又分为压缩和非压缩,压缩和非压缩的区别在于 -> 压缩格式 = 非压缩格式 + 01 ,所以说压缩格式并不是真的压缩了,反而多了一个后缀01
WIF(wallet-import-format)格式,5开头
WIF-compressed(WIF压缩格式),K 或者 L 开头
说明:hex非压缩格式私钥只能转换成WIF格式私钥;hex压缩格式私钥只能转换成WIF-compressed格式私钥。

Eth地址
以太坊地址是 唯一标识符 unique identifiers,它们是使用单向哈希函数(Keccak-256)从公钥或合约派生的。
以太坊中账户是一个20字节160位(通常用40个16进制数字表示)的地址标识符,用来识别账户。
分类:

外部账户:通常叫账户,被私钥控制且没有任何代码与之关联(为人所拥有)。
合约账户:通常叫合约,被它们的合约代码控制且有代码与之关联,也就是说该账户为内部代码拥有控制。
功能:

1、外部账户可以通过创建、用自己的私钥来对交易进行签名,来发送消息给另一个外部账户或合约账户。
2、在两个外部账户之间传送的消息只是一个简单的价值转移。
3、从外部账户到合约账户的消息会激活合约账户的代码,允许它执行各种动作。(比如转移代币、写入内部存储、新代币、执行运算,创建一个新的合约)。注意外部账户原则上不能被个人所控制的,如果它们被人类“控制”,那是通过程序设定它们被具有特定地址的外部账户控制,进而被拥有外部账户私钥的人控制!

合约账户不可以自己发起一个交易。合约账户只有在接收到一个交易之后(从一个外部账户或另一个合约账户处),为了响应此交易而触发一个交易。

fil钱包地址
可以转入链上资产到对应公链地址或转出到同公链的其他地址。
Filecoin的地址格式:network + protocol + payload + checksum
network,网络前缀,f用于文件币主网或t用于文件币测试网
protocol,采用不同加密协议的地址类型,当前有0、1、2、3四种类型,其中0地址为简单的ID,没有公共密钥。
payload,有效载荷,包含采用不同编码或加密协议产生的公共密钥的信息。
checksum,校验和

network protocol payload checksum
‘f’ 或 ‘t’ 0 leb128-varint -
‘f’ 或 ‘t’ 1 blake2b-160 ( secp256k1-PubKey ) 4 bytes
‘f’ 或 ‘t’ 2 SHA256 (Random) ) 4 bytes
‘f’ 或 ‘t’ 3 BLS PubKey 4 bytes
比特币采用UTXO模型,
私密性比较强,理论上可以为每一笔输出设置一个地址。
无需维护余额等状态值。
UTXO是独立数据记录,可以通过并行极大的提升区块链交易验证速度。
无需关心事务问题,只需要关心输出脚本即可。
UTXO无法分割,每次交易都需要多个输出,分别为支出与找零。

以太坊采用账户模型
可以快速获取账户的余额,而比特币需要将指定地址所拥有的所有UTXO中的未花费交易总值整合。
节省空间,因为每笔交易只有一个输入一个输出。
可以较容易的实现图灵完备的智能合约。

### 编写Shell脚本启动JAR包 为了简化Java应用程序特别是基于Spring Boot的应用程序的管理,可以创建一个通用的Shell脚本来处理解压缩ZIP文件、启动、停止和重启JAR包的操作。下面是一个详细的指南来构建这样一个实用工具。 #### 创建基础结构 首先定义脚本的基本框架,在这个例子中命名为`app_control.sh`: ```bash #!/bin/bash # 定义变量用于存储应用名称和其他配置参数 APP_NAME="your-app-name" DEPLOY_PATH="/path/to/deploy/directory" LOG_FILE="$DEPLOY_PATH/$APP_NAME.log" case "$1" in start) echo "Starting $APP_NAME..." # 启动逻辑... ;; stop) echo "Stopping $APP_NAME..." # 停止逻辑... ;; restart) echo "Restarting $APP_NAME..." # 重启逻辑... ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac ``` 此段代码提供了基本的选择菜单以便于后续扩展不同操作的功能[^3]。 #### 添加具体实现细节 对于每种情况(即启动、停止或重启),都需要具体的命令去完成相应的任务。这里展示了一个完整的版本,它不仅能够控制服务的状态还能记录日志并检查进程是否存在。 ```bash #!/bin/bash # 设置环境变量 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH # 应用基本信息设置 APP_NAME="example-springboot-app.jar" DEPLOY_PATH="/opt/example-app/" PID_FILE="$DEPLOY_PATH/app.pid" LOG_FILE="$DEPLOY_PATH/application.log" function check_pid { if [ -f $PID_FILE ]; then PID=$(cat $PID_FILE); ps -p $PID > /dev/null 2>&1; return $?; fi return 1; } case "$1" in start) cd $DEPLOY_PATH || exit if check_pid ; then echo "$APP_NAME is already running." exit 1 else nohup java -jar $APP_NAME >>$LOG_FILE 2>&1 & echo $! >$PID_FILE sleep 1s tail -n 100 $LOG_FILE | grep 'Started ExampleApplication' if [ $? -eq 0 ];then echo "$APP_NAME started successfully!" else echo "Failed to start $APP_NAME, please see logs at $LOG_FILE for more information." fi fi ;; stop) if ! check_pid ; then echo "$APP_NAME was not running." exit 1 else kill $(<"$PID_FILE"); rm -rf $PID_FILE while pgrep -u $USER -x java >/dev/null; do :; done echo "$APP_NAME stopped successfully!" fi ;; restart) $0 stop && $0 start ;; status) if check_pid ; then echo "$APP_NAME is running (pid:$(cat $PID_FILE))." else echo "$APP_NAME is NOT running." fi ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 esac exit 0 ``` 上述脚本实现了对指定路径下的`.jar`文件进行管理和监控的能力,并通过简单的命令行接口提供给用户使用[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值