自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(196)
  • 资源 (5)
  • 收藏
  • 关注

原创 CasaOS - 您的个人云

这种个人云将提供低成本的数据协作解决方案作为个人数据中心,为创作者和小型组织存储和管理数据。分布式协作计算网络可以由位于世界各地的个人服务器组成。它还可以控制和连接所有智能设备,提供跨生态系统的本地智能服务。同时,更多的电脑和开发板,完全兼容Ubuntu、Debian、Raspberry Pi OS和CentOS,只需一行安装即可。此外,个人云可以结合个人数据来训练个性化的人工智能助手。我们的想法是,这项技术将成为解决消费者数据资产所有权问题的有效方法,并为个人和小型组织提供更实惠、更高效的计算解决方案。

2023-10-27 15:41:04 884

原创 window电脑关闭docker中正在运行redis的 RDB 和AOF 持久化选项

如果 Redis 已经在运行并且你希望在不重新启动容器的情况下关闭 RDB 和 AOF 持久化,你可以使用 Redis 的命令来实现。使用 `docker run` 命令的 `-e` 选项来设置环境变量,以覆盖 Redis 配置选项。这里的 `-e REDIS_APPENDONLY="no"` 将 `appendonly` 选项设置为 `no`,从而关闭了 AOF 持久化。这里的 `-e REDIS_SAVE=""` 将 `save` 选项设置为空字符串,从而关闭了 RDB 持久化。

2023-09-30 02:04:20 1048 1

原创 binance {“code“:-1021,“msg“:“Timestamp for this request was 1000ms ahead of the server‘s time.“}

Binance: "Timestamp for this request is 1000ms ahead of the server's time %sCould not fetch leverage amounts due toInvalidNonce. Message: binance {"code":-1021,"msg":"Timestamp for this request was 1000ms ahead of the server's time."}

2023-08-04 10:46:03 725

原创 小白学算法一IQR

这个IQR值(21分钟)告诉我们,大约50%的跑者(也就是从第25百分位到第75百分位的跑者)完成马拉松的时间在96.5分钟和117.5分钟之间。4. **箱线图**:在统计学中,箱线图是一种常见的可视化工具,用于展示数据的五数概括(最小值,Q1,中位数,Q3,最大值)。在箱线图中,箱体的上边缘和下边缘分别表示Q3和Q1,箱体的高度(即IQR)可以显示数据的离散程度。这是因为这些值远离了数据的中间50%的范围。1. **描述数据的分布**:IQR用于度量数据的离散程度,可以提供数据分布的一种视角。

2023-07-29 11:13:26 2097

原创 如何用深度强化学习自动炒股

股票 Gym 环境主要参考,对观测状态、奖励函数和训练集做了修改。俺完全是股票没入门的新手,难免存在错误,欢迎指正!数据和方法皆来源于网络,无法保证有效性,!

2023-07-06 22:24:53 1315 1

原创 Python 函数耗时异常自动化监控实战教程

内容 隐藏一、性能数据函数耗时采集及可视化报表生成1. 性能数据文件保存(cProfile)2. 详细性能数据读取查看二、生成函数调用栈结构图(gprof2dot)教程三、性能分析及优化实战四、耗时异常自动化监控1. 正态分布数据方案2. Turkey 箱型图方案本文内容包括。在做Python优化的时候,可以借助cProfile生成性能数据文件,通过pstats获取详细耗时分布数据,结合gprof2dot脚本生成函数调用栈结构图做可视化分析,提高性能分析的效率。

2023-07-06 19:40:18 1051

原创 接近完美的监控系统—普罗米修斯

摘要更高级一些,是对直方图的扩展。除了提供观察的总和和计数之外,它们还提供滑动窗口上的分位数度量。分位数是将概率密度划分为相等概率范围的方法。对比直方图:直方图随时间汇总值,给出总和和计数函数,使得易于查看给定指标的变化趋势。而摘要则给出了滑动窗口上的分位数(即随时间不断变化)。

2023-07-04 21:55:03 2205

原创 PrivateGPT:安全和私密的离线 GPT-4

PrivateGPT 证明了强大的人工智能语言模型(如 GPT-4)与严格的数据隐私协议的融合。它为用户提供了一个安全的环境来与他们的文档进行交互,确保没有数据被外部共享。无论您是 AI 爱好者还是注重隐私的用户,PrivateGPT 都为保护隐私的 AI 应用程序开辟了新的可能性。本地向量存储用于提取这些响应的上下文,利用相似性搜索从摄取的文档中找到相应的上下文。在 20-30 秒内,根据您机器的速度,PrivateGPT 使用 GPT-4 模型生成一个答案,并提供它从您的文档中使用的来源来创建响应。

2023-06-14 19:16:12 5732 1

原创 十大开源 ChatGPT 替代品:弥合对话式 AI 的差距

十大开源 ChatGPT 替代品:弥合对话式 AI 的差距作为 FastChat 的一部分,Vicuna 利用类似于 GPT 模型的基于转换器的架构,并针对来自 ShareGPT.com 的对话数据集进行了微调。是经过微调的 T5 模型的集合,这些模型已经在大量的教学数据集上进行了训练。为了填补这一空白,开源社区已经开始提供 GPT-4 的替代品,这些替代品提供几乎相同的性能和功能,同时需要更少的计算能力。由 OpenAI 开发的最先进的 GPT-4 是该领域的主导者。

2023-06-14 19:11:58 2139 1

原创 LlamaIndex 简介:LLM 应用程序的数据框架

无论您是希望改进客户服务聊天机器人的企业、需要快速访问特定信息的研究人员,还是热衷于突破 AI 界限的开发人员,LlamaIndex ChatGPT 都提供了一条充满希望的前进道路。无论您是希望改进客户服务聊天机器人的企业、需要快速访问特定信息的研究人员,还是热衷于突破 AI 界限的开发人员,LlamaIndex ChatGPT 都提供了一条充满希望的前进道路。通过对医学数据库和教科书的适当培训,该模型可以提供有关各种医学状况、治疗和最新研究的有价值的信息。

2023-06-14 18:54:42 4775

原创 FinGPT:以数据为中心的方法革新开源金融

这是 ChatGPT 和 GPT4 的“秘密”成分,使 FinGPT 成为金融行业的强大工具。FinGPT 由 AI4Finance Foundation 开发,是一种以数据为中心的工具,可使大型语言模型 (LLM) 的金融数据民主化。本文将深入探讨 FinGPT 的复杂性、它的好处,以及它如何成为金融领域的游戏规则改变者。FinGPT 的一个关键方面是它专注于开源互联网规模的金融数据。这使得 FinGPT 不仅是金融行业的强大工具,也是一种具有成本效益的解决方案。:导入训练模型所需的模块。

2023-06-14 18:46:50 4397 1

原创 免费的第三方托管压缩后的js,css等

将 "YourGitHubUsername" 替换为您的 GitHub 用户名,将 "YourRepositoryName" 替换为您的仓库名称,将 "version" 替换为您的仓库版本(例如:main 或者具体的 commit hash),将 "relativeFilePath" 替换为您在步骤 3 中复制的相对文件路径。要托管您自己的 JS 文件,您可能需要将文件发布到类似于 GitHub 或 npm 的平台,然后使用诸如 jsDelivr 或 UNPKG 之类的服务将其提供给您的项目。

2023-05-02 21:48:12 2305 1

原创 git把我本地文件传到我的指定的仓库

在使用Git将本地文件推送到指定仓库之前,请确保已经安装了Git并进行了基本配置。这个错误表明Git尚未配置你的用户名和邮箱,这些信息在每次提交时都会与提交一起记录。首先,在本地文件夹中打开命令行界面(在Windows上是命令提示符或PowerShell,而在Mac和Linux上是终端)。完成以上步骤后,本地文件将被推送到指定的远程仓库。如果在推送过程中遇到问题,请检查你是否拥有远程仓库的写入权限。双引号内的文字可以替换为你的提交信息,例如 "First commit"。5.将本地仓库与远程仓库关联。

2023-05-02 21:04:32 2538

原创 如何训练自己的大型语言模型

如何使用 Databricks、Hugging Face 和 MosaicML 训练大型语言模型 一旦我们训练和评估了我们的模型,就可以将其部署到生产环境中了。这就是拥有像 Databricks 这样的工具的好处所在,我们可以在其中将 Stack、Stackoverflow 和 Replit 数据视为更大数据湖中的三个来源,并根据需要在我们的下游流程中使用它们。因为这些事件通常需要进一步调查和潜在的调整,我们在我们的流程中强制执行数据确定性,因此我们可以更轻松地重现、诊断和解决任何此类损失峰值的潜在来源

2023-04-22 17:24:14 1985

原创 ubuntu22.4 升级node版本到最新稳定版

是Node.js的最新稳定版本(截至2021年9月)。请查阅Node.js官网 (现在,您应该已成功将Node.js升级到最新稳定版。打开终端 (Ctrl+Alt+T)。) 以获取当前的最新稳定版。请注意,在上述命令中,

2023-04-22 05:03:27 2674

原创 Stable-Diffusion 通過骨架分析插件ControlNet 來製作超有意境的圖片

A.開始前的準備工作,你需要先安裝必備的環境安裝Python 3.10.6, “Add Python to PATH” 安裝git.B.正式開始安裝的步驟:1.下載 Stable-Diffusion-webui 【鏈接地址】 Github開源項目,【中文語言包】 (注意:大陸用戶請掛梯子,否則打不開)2.安裝擴展 :https://github.com/Mikubill/sd-webui-controlnet.git3.下載ControlNet模型【鏈接】選擇裡面的 con

2023-04-16 19:48:36 750

原创 修复 Ubuntu Linux 中的“Command ‘python‘ not found”错误

现在,您可以在 /usr/bin/python 和 /usr/bin/python3 之间创建符号链接,但对于 Ubuntu 用户来说存在一个更简单的选项。但是,如果您使用的是某些(旧的)Python 应用程序,它希望在其代码中运行 python 可执行文件,您就会遇到问题。别担心,你也可以绕过它。这是因为 Python 语言没有安装为 python,而是 python3 或 python2(在一些较旧的 Ubuntu 版本中)。正如您在下面的屏幕截图中看到的,我的系统上安装了 Python 版本 3。

2023-03-24 15:51:31 5761 1

原创 在 Ubuntu 上安装 MongoDB 社区版

要在您的Ubuntu系统上安装 MongoDB Community ,这些说明将使用由 MongoDB Inc 维护和支持的官方包。官方 包始终包含最新版本的 MongoDB,并且可以从其自己的专用存储库中获得。要安装不同版本的 MongoDB Community ,请使用此页面左上角的版本下拉菜单选择该版本的文档。使用本教程使用包管理器在 Ubuntu Linux 的 LTS(长期支持)版本上 安装 MongoDB 6.0 Community Edition。单击适合您的 Ubuntu 版本的选项卡。

2023-02-17 21:27:28 1331

原创 什么是 MEV?

但由于套利交易的价值是 45 WETH,理论上,所有 45 WETH 都可以竞标给区块生产者,所以通常将交易的全部价值称为 MEV。区块的重组、交易的重新排序,甚至是暂时的交易审查,都会对区块链产生深远的影响,并打破许多应用程序的假设。你可以说上面示例中的交易“价值”45 WETH,因为这是将分配给能够首先发现和广播该交易并成功结算的人的利润,即包含在成为一部分的区块中区块链。技术上是正确的,但令人困惑!MEV 集中在最大的区块生产者手中的可能性可能导致失控的增长和哈希算力的集中,从而损害网络的去中心化。

2023-02-05 00:46:57 1069

原创 ImportError: cannot import name ‘getargspec‘ from ‘inspect‘

函数,但该函数已从 Python 3.0 开始不再可用。这是因为该函数已被弃用,并且应该使用替代方法替换。根据错误提示点击到 expressions.py 文件然后在文件中执行以下操作即可。函数获取函数的参数信息。对于 Python 3.x,您可以使用。如果您正在使用 Python 3.x,请尝试替换代码中的。对于 Python 2.7 和更早版本,您可以使用。这个错误消息表明您试图从。

2023-02-03 12:41:36 3688

原创 Uniswap 解析:恒定乘积做市商模型Constant Product Market Maker Model 的Vyper 实作

Dai -> Ether:用2 Dai 来购买Ether,依照上方公式(1-x)(50+2) = 50 可得x ≒ 0.038,也就是说得到的价格是2 Dai = 0.038 Ether,高于市价2 Dai = 0.02 Ether,那么眼尖的人就会立刻冲来套利了xD。在有手续费的情况下∆x 就变成了(1-ρ)∆x ,若令γ = 1-ρ 则为γ∆x。要注入多少Ether (≥ 10¹⁰) (= x) 以及相应的币的数量(= y),也就是上方提到的k 值(= x* y),在本例的X 币就是Ether。

2023-01-31 14:59:56 2426

原创 solidity智能合约之将函数调用记录为事件

将在使用区块链客户端可查询的索引字段调用时记录此信息。这涵盖了事件的大多数用例,使它成为一种快速将事件日志记录添加到 dapp 的简单方法。修饰符提供通用函数调用日志记录,该修饰符触发数据捕获作为。将函数调用记录为事件。使用修饰符修饰的函数。

2023-01-24 14:04:28 250

原创 数学魔法结局:muldiv

这条指令完全符合我们的要求,只是它返回的是余数而不是商。那么我们的策略是什么?介绍了一些棘手的数学魔法,但我一直没有抽出时间说出妙语。我们的秘密武器是 EVM 的。中,它可以在每笔交易中节省 gas。独立地将各个部分拼凑起来并提出了相同的策略。这个例程包含在 Uniswap V3。上述的一个早期变体被简要地考虑包含在。

2023-01-21 16:20:25 1212

原创 Solidity 中的数学(第 5 部分:指数和对数

二进制定点数和浮点数的区别在于,对于定点数,指数是预定义的常量,通常为负数,因此只需要存储尾数;在本文中,我们将展示如何在 Solidity 中有效地实现以 2 为底的对数和指数函数,如何将这些以 2 为底的函数转换为相应的自然(以。对数函数连同指数函数(指数函数是对数函数的倒数)允许将乘法转换为加法,更重要的是,可以将求幂转换为乘法。因此,计算二进制对数的小数部分可以推导为计算 1(含)和 2(不含)之间数字的二进制对数。因此,二进制定点数或浮点数的二进制对数可以计算为尾数加上指数的二进制对数。

2023-01-20 15:10:19 2177

原创 Solidity 中的数学(第 4 部分:复利)

其次,必须在每期末计算复利,即使在接下来的时间段内没有人会使用更新后的本金。第四,对于短时间,这种方法是不准确的,因为交易挖掘时间不可预测,并且在网络负载高的时候可能会非常大。如果时间段很短,或者上一次复利是很久以前进行的,那么在所有经过的时间段内复利所需的气体量可能会超过区块气体限制,从而有效地使进一步的复利变得不可能。在我们的下一篇文章中,我们将介绍提供大致相同精度的更便宜的方法。由于缺乏本机分数支持,复杂的分数计算,例如复合定期利率所需的那些,在 Solidity 中可能具有挑战性。

2023-01-20 14:21:23 2344

原创 (解决方案) node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28‘ not found (node required by node)

当您运行node -v或pm2 list命令时出现错误:-node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)。

2023-01-20 11:59:24 25038 7

原创 Solidity 中的数学(第 3 部分:百分比和比例)

我们可以通过一对两个 256 位无符号整数分别持有整个 512 位数字的低位和高位 256 位部分来模拟 Solidity 中的 512 位无符号整数。在上一篇文章中,我们展示了如何以精度为代价解决幻象溢出问题,但是该解决方案在这里不起作用,因为我们需要精确的结果。在主流编程语言中简单明了,在 Solidity 中,这种简单的计算具有惊人的挑战性,正如我们在。operators,而真正的代码应该使用SafeMath函数来防止真正的,即非幻象的溢出。是一个函数,它返回参数最高有效位的从零开始的索引。

2023-01-18 19:52:38 1192

原创 Solidity 中的数学(第 2 部分:溢出)

我需要几秒钟来写这四个字,在这几秒钟内,我观察附近的行,试图找出原因,为什么不可能溢出,或者为什么在这种特殊情况下应该允许溢出。智能合约必须是安全的。在那些整数类型确实会溢出的语言中,纯整数主要用于索引、计数器和缓冲区大小,即用于受正在处理的数据大小限制的值。唯一变得更安全的操作是除法:除以零以前返回零,但现在它抛出异常,但即使是除法也没有变得完全安全,因为它仍然可能溢出。因此,一旦 EVM 拥有算术操作码版本,在溢出时恢复,它们的 gas 成本可以与现有的不安全版本相同,或者略高。是溢出时跳转的地址。

2023-01-18 17:01:03 1302

原创 Solidity 中的数学(第 1 部分:数字)

定点数基本上是一个简单的分数,其分母是一个预定义的常数,通常是 2 或 10 的幂。然而,一旦以太坊中的大多数数字都是 256 位宽,那么即使简单的两个数相加也可能有 257 位宽,而两个数的乘积可能高达 512 位宽。一个数可能是整数或非整数,有理数或无理数,正数或负数,实数或虚数等,但这些只是属性,数字可能有也可能没有,单个数字可能同时具有多个这样的属性。在运行时,Solidity 循环中的除法结果趋向于零,其他算术运算在溢出时回绕,而在编译时,使用具有任意大分子和分母的简单分数计算表达式。

2023-01-18 16:28:46 1936

翻译 计算机原理 —— 主板与内存映射

大多数的地址被映射到了 RAM 中,如果一个地址没有映射到 RAM,内存映射会告诉芯片此地址上的请求应由哪个设备负责响应。这是第一篇文章,主要描述现代基于 Intel 处理器的主板架构,CPU 是怎样访问内存的,以及系统的内存映射。将逻辑地址转换为物理地址的规则是很复杂的,同时取决于 CPU 的运行模式(真实模式(real mode),32 位保护模式,64 位保护模式)。实际的地址范围取决于主板的类型和计算机中存在的设备,但大多数的 Core 2 系统都和上图中描述的类似。文件列出了这些地址映射范围。

2023-01-14 23:35:09 770

原创 Solidity 中的对数计算

因此在项目的开发中,可能会根据各自的需求,完成不同的实现。关于小数部分的计算,由于这个函数最终要返回的结果的 tick index 是一个整数,这里在计算 log2xlog2x 时可以不需要那么的精确,只需要将最后计算结果的误差保持在 ±1 之内就可以。当给定价格 P−−√P 时,需要计算出 i 的值,即计算 log1.0001√xlog1.0001x 的结果,因为 i 为整数,这里需要将对数结果向下或向上取整,得出 i 的值。在后文,我会使用开源项目中的代码来进行分析 solidity 中的实现。

2023-01-14 23:32:42 1214 2

原创 Uniswap v3 详解(五):Oracle 预言机

这样做的目的是将数据进行初始化,这样在代币交易写入新的 Oracle 数据时,不需要再进行初始化,可以让交易时更新 Oracle 不至于花费太多的 gas,算术平均数的优势是其简单性,也是最符合直觉的平均数。将会返回请求者所请求的每一个时间点的 Oracle 数据,请求者可以根据这些数据计算出交易对的 TWAP(时间加权平均价,几何平均数),计算公式在。当第三方对某个交易池的 Oracle 有需求时,可以主动调用合约的接口扩展这个数据的可用空间,这样后续合约会存储更多的 Oracle 数据。

2023-01-14 23:25:30 1228

原创 Uniswap v3 详解(四):交易手续费

以开发者的视角来看,Uniswap v3 的手续费计算相对会比较复杂, 因为它需要针对每一个position来进行单独的计算,为了方便计算,在代码中会将手续费相关的元数据记录在position的边界 tick 上(这些 tick 上还存储了 ΔLΔL 等元数据)。

2023-01-14 23:18:17 3641

原创 Uniswap v3 详解(三):交易过程

上面的代码即交易的主循环,实现思路即以一个 tickBitmap 的 word 为最大单位,在此单位内计算相同流动性区间的交易数值,如果交易没有完成,那么更新流动性的值,进入下一个流动性区间计算,如果 tick index 移动到 word 的边界,那么步进到下一个 word.交易过程就是先获取交易池,然后需要确定本次交易输入的是交易池的 x token, 还是 y token,这是因为交易池中只保存了 x 的价格 P−−√=yx−−√P=yx,x token 和 y token 的计价公式是不一样的。

2023-01-14 23:10:46 3997

原创 Uniswap v3 详解(二):创建交易对/提供流动性

前文已经说过 Uniswap v3 的代码架构。一般来说,用户的操作都是从中的合约开始。

2023-01-14 23:03:24 4531

原创 如何从区块链上数据识别出套利行为或者抢跑三明治交易

鉴于交易可以任意复杂并且可以有无数未知交易模式,使用特定交易模式匹配的方法无法应对新的 MEV 模式。为了确定交易中是否发生套利,我们需要对交易进行通用抽象。· TransferTable的每一行表示一个Address的一个Asset发生了变化,正值表示增加,负值表示减少。· 在同一个区块中,攻击者的交易包含一个开始交易、一个结束交易,以及介于两者之间的一个或多个受害者交易。我们用它来描述一次交易中所有涉及的地址之间发生的多个资产流的最终结果。· 交易中涉及的每项资产在各自的交易中都经历了流入和流出。

2023-01-09 00:56:08 1312

原创 Erigon 最新执行客户端安装教程

接下来命令启动:Erigon 在 30303 端口,rpcdaemon 在 8545 端口,prometheus 在 9090 端口,grafana 在 3000 端口。可以启用启用 pprof 或指标(或两者)的可选标志 - 但是,默认情况下它们都在 6060 上运行,因此如果您想同时运行两者,则必须更改其中一个。请记住,SSD 性能在接近容量时会下降。将 RPCDaemon 作为单独的进程运行:此守护进程可以使用本地数据库(运行 Erigon 或在数据库快照上)或远程数据库(在另一台服务器上运行)。

2023-01-08 22:07:48 1383

原创 巧妙来验证调用者是普通帐户而不是合约账户

如何判断是普通地址还是合约地址​​​​​​​

2023-01-07 18:43:41 151

原创 以太坊合约地址生成原理

也就是说合约的地址是可以预先获知的,这有时候很有用。比如:当我们想把一个合约部署到一个固定的地址上时,我们可以通过使用指定的sender和nonce就可以做得到。比如:EIP1820和EIP 2470正是这么做的。我们在以太坊上创建一个合约时,新生成的合约的地址是根据发送者(sender)的地址和其已生成的事务数(nonce)确定的,经过RLP编码后再Hash( Keccak-256)运算得出的。因此,由一个联合创建的第一个联合地址将使用非连续零时。中引入的操作码),它是可以创建约的另一种方式。

2023-01-07 18:12:27 1625

原创 构建 ERC20 代币合约

就像 Ether 和大多数正在使用的 ERC20 代币合约一样,除非您有非常特殊的理由不这样做。使用 Contracts,我们可以轻松创建我们自己的 ERC20 代币合约,该合约将用于跟踪假设游戏中的内部货币。合约内部的所有运算仍然是对整数进行的,而且是不同的用户界面(钱包、交易所等)必须根据 调整显示的值。不幸的是,Solidity 和 EVM 不支持这种行为:只能使用整数(整数),这会带来问题。此外,我们正在创建一个of 令牌,它将被分配到部署合约的地址。这就是我们的 GLD 代币的样子。

2022-12-29 13:55:51 1414 2

ipfs安装部署,使用文档

本文适用于 Windows 平台(Win7/Win10)下 ipfs 开发环境的搭建。

2018-09-19

bitcoinj项目及demo

bitcoinj项目富含完整demo 此项目使用maven构建,不会使用maven的同学,查看项目pom.xml文件,并在http://mvnrepository.com/下载相应的依赖jar包. demo:bitcoinj签名交易 /** * @param unSpentBTCList 未花费utxo集合 * @param from 发送者地址 * @param to 接收者地址 * @param privateKey 私钥 * @param value 发送金额.单位:聪 * @param fee 旷工费.单位:聪 * @return 签名之后未广播的原生交易字符串 * @throws Exception */ public static String signBTCTransactionData(List unSpentBTCList, String from, String to, String privateKey, long value, long fee) throws Exception { NetworkParameters networkParameters = null; // networkParameters = MainNetParams.get(); //测试网络 networkParameters = TestNet3Params.get(); Transaction transaction = new Transaction(networkParameters); DumpedPrivateKey dumpedPrivateKey = DumpedPrivateKey.fromBase58(networkParameters, privateKey); ECKey ecKey = dumpedPrivateKey.getKey(); long totalMoney = 0; List utxos = new ArrayList(); //遍历未花费列表,组装合适的item for (UnSpentBTC us : unSpentBTCList) { if (totalMoney >= (value + fee)) break; UTXO utxo = new UTXO(Sha256Hash.wrap(us.getTxid()), us.getVout(), Coin.valueOf(us.getSatoshis()), us.getHeight(), false, new Script(Hex.decode(us.getScriptPubKey()))); utxos.add(utxo); totalMoney += us.getSatoshis(); } transaction.addOutput(Coin.valueOf(value), Address.fromBase58(networkParameters, to)); // transaction. //消费列表总金额 - 已经转账的金额 - 手续费 就等于需要返回给自己的金额了 long balance = totalMoney - value - fee; //输出-转给自己 if (balance > 0) { transaction.addOutput(Coin.valueOf(balance), Address.fromBase58(networkParameters, from)); } //输入未消费列表项 for (UTXO utxo : utxos) { TransactionOutPoint outPoint = new TransactionOutPoint(networkParameters, utxo.getIndex(), utxo.getHash());

2018-09-10

java任意音频文件格式转mp3

Java音频视频编码器,本文实例将任何音频格式转换为MP3格式 您还可以调整视频大小,更改其大小和比例等 本文实例实用于任何Windows,MacOS,Linux系统 附:完整jar项目,完善的demo,详细的注释,简单易操作

2018-08-21

bip39生成助记词

//生成助记词 var mnemonic = BIP39.generateMnemonic(); //根据助记词生成种子 var seed = BIP39.mnemonicToSeed(mnemonic);

2018-07-18

eos.js(eos通用js库)

EOS区块链的 通用js库 版本:15.0.2 发行说明: eosjs@15.0.2与eosio v1.0.5 - v1.0.7兼容 将格式模块中的某些类型从unsigned转换为signed:UDecimalPad - > DecimalPad例如(15.0.1) 所有金额asset和extended_asset金额都需要精确的小数位数(更改1 SYS为1.0000 SYS)(15.0.0) 使用config.verbose而不是config.debug(14.1.0) 开发文档请参阅本人相关其他博客

2018-07-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除