《开源精选》是我们分享Github、Gitee等开源社区优质项目的专栏,内容包括技术、学习、实战以及各种有趣的内容。本期重点介绍的Solana 是一个开源项目,它实现了一个新的、高性能的、无需许可的区块链。
什么是Solana?
称为nLocktime 的比特币功能,可用于使用区块高度而不是时间戳来延迟交易。作为比特币客户端,如果你不依赖网络,你将使用区块高度而不是时间戳。区块高度被证明是密码学社区所称的可验证延迟函数的一个实例。这是一种指示时间已经过去的加密安全方式。在Solana 中,我们使用更细粒度的可验证延迟函数(SHA 256 哈希链)来检查分类帐并协调共识。有了它,我们实现了乐观的并发控制,现在正朝着每秒710,000 笔交易的理论极限迈进。
Solana 钱包
加密钱包是一种存储密钥集合的设备或应用程序,这些密钥可用于发送、接收和跟踪加密货币的所有权。钱包可以有多种形式。钱包可以是计算机文件系统中的目录或文件、一张纸或称为硬件钱包的专用设备。还有各种智能手机应用程序和计算机程序提供了一种用户友好的方式来创建和管理钱包。
密钥是安全生成的私钥和密码及其派生的公钥。私钥及其对应的公钥统称为密钥对。钱包包含一个或多个密钥对的集合,并提供一些与它们交互的方法。
这个公钥(通常缩写为PUBKEY)被称为钱包的接收地址或只是它的地址。钱包地址可以自由分享和展示。当另一方想要将一定数量的加密货币发送到钱包时,他们需要知道钱包的接收地址。根据区块链的实施,地址也可用于查看有关钱包的某些信息,例如查看余额,但不能更改钱包的任何信息或提取任何代币。
需要此私钥对任何将加密货币发送到另一个地址的交易进行数字签名或对钱包进行任何更改。绝不能共享私钥。如果有人获得了钱包私钥的访问权限,他们就可以提取其中包含的所有硬币。如果钱包的私钥丢失,发送到该钱包地址的任何代币都将永久丢失。
用法
部署程序
要部署该程序,您需要程序共享对象的位置(程序二进制.so)
Solana 程序部署PROGRAM_FILEPATH 如果部署成功会返回部署程序的程序id,例如:
程序ID:3KS2k14CmtnuVv2fvYcvdrNgC94Y11WETBpMUGgXyWZL 在部署命令中指定要部署到特定程序ID 的密钥对:
solana program deploy --program-id KEYPAIR_FILEPATH PROGRAM_FILEPATH 如果在命令行中没有指定程序ID,该工具将首先查找匹配PROGRAM_FILEPATH 的密钥对文件,或者在内部生成一个新的密钥对。
匹配的程序密钥对文件与程序的共享对象位于同一目录中,名为PROGRAM_NAME-keypair.json。匹配的程序密钥对由程序构建工具自动生成:
./path-to-program/program.so
./path-to-program/program-keypair.json
新功能
随着Solana 的发展,可能会引入新功能或补丁,从而改变集群的行为以及程序的运行方式。行为的变化必须在集群的各个节点之间进行协调,如果节点不协调,那么这些变化可能会导致共识破裂。 Solana 支持一种称为运行时属性的机制,以促进顺利采用更改。
运行时函数是一个纪元协调事件,其中将发生集群的一个或多个行为变化。 Solana 在功能门中包装了新的行为改变更改,并默认禁用它们。然后使用Solana 工具激活一个功能,将其标记为待处理,一旦标记为待处理,该功能将在下一个时期被激活。
更多内容:https://github.com/solana-labs/solana