精华内容
下载资源
问答
  • compositional-semantics是一个给定单词向量表示的组合函数学习。 一个特殊功能是检测和处理非组合短语。 系统要求 NumPy 和 SciPy 端到端流水线指令 输入:向量、上下文向量、PPDB 为了使事情更快,最好是在...
  • 数字钱包是什么? 区块链数字货币钱包即能够存储、管理和交易数字货币的软件。 如果以中心化的软件来类比的话,大概就相当于支付宝。虽然真的对比起来,无论是从中心化程度、还是对用户信息的保护度以及对设备的依赖...

    随着区块链领域的纵深发展,全球对数字货币关注度的提升,区块链数字货币钱包逐渐从浪潮中涌现,成为区块链未来进程中不可或缺的一部分。

    数字钱包是什么?

    区块链数字货币钱包即能够存储、管理和交易数字货币的软件。

    如果以中心化的软件来类比的话,大概就相当于支付宝。虽然真的对比起来,无论是从中心化程度、还是对用户信息的保护度以及对设备的依赖程度都有所不同。比如说,支付宝是依附金融机构的中心化钱包,而数字货币钱包也并非全部是去中心化的,除却交易时部分节点信息确认和全节点信息确认这种较为去中心化的钱包,也有依托中心化信用结构的中心化数字货币钱包。在全名实名制的情况下,数字钱包是匿名的,隐私保护性自然更好。而现在多数的数字钱包是手机端、pc端以及硬件钱包多方支持的,在对设备的依赖性上也较弱,更为便捷。还有其他一些特性,但在这里暂不赘述。

    数字钱包有个和常见中心化钱包迥异的分类,即冷热钱包。众所周知,冷热钱包就是触网钱包和非触网钱包。热钱包,即触网钱包交易便捷,但因为联网,安全性上则不如冷钱包。冷钱包不触网,储存大额数字货币更为安全。

    公钥和私钥

    冷热钱包想来大家都更熟悉一些,但一些常见的字眼可能就容易混乱,比如“公钥”和“私钥”。

    对称加密中,加密解密用的秘钥是一致的,非对称加密中,加密解密用的秘钥则不同,是一对,我们称之为“公钥”和“私钥”。“公钥”顾名思义——可以公开,“私钥”则是私密的。如果用公钥对内容加密,则必须用私钥来解密;如果用私钥对内容加密,则必须使用公钥来解密。这样就相当于对内容进行一个双重的保护。如果我们把消息的接受者和发送者称为A和B,B生成“公钥+私钥”的秘钥对,并且把公钥发给A,然后A用公钥对信息进行加密,再把密文发送给B,B用私钥对密文进行解密。这个过程里,B的私钥就不需要发送给别人,不存在传递过程,也就很难被窃取。

    生活中的银行账户来类比一下。钱包地址就相当于银行卡卡号,在创建钱包后生成,一个钱包对应一个钱包地址,就相当于一张卡只有一个卡号,钱包地址可以接受和转出加密货币。而“公钥”则是银行卡的密,私钥是更高级的能够证明你身份的东西,即证明你持卡人身份的身份证号码。

    这里要注意的是一个钱包只能有且仅有一个私钥并且不能修改,就相当于你有且仅有一个身份证号码不能修改,私钥可以证明你是钱包所有者,允许你进入钱包并且拥有钱包的掌控权。同时,可以用来找回公钥和钱包地址,就像你你银行卡丢了或者密码忘记了,可以带身份证去银行找回一样。但是如果你身份证丢了,事情要麻烦的多。私钥也是一样,而且在加密世界,没有公安部门,私钥丢失将无法重新办理,只能利用“助记词”找回。

    助记词和私钥

    那问题来了,“助记词”又是什么?这是个很简单的名词,其实了解私钥就了解了助记词。助记词顾名思义,就是私钥的备份,私钥是由哈希算法加密而成,哈希算法无论输入是什么数字格式、文件有多大,输出都是固定长度的比特串,一般而言是256bit。每个bit就是一位0或者1,256bit就是256个0或者1二进制数字串,用16进制数字表示的话,就是多少位呢?16等于2的4次方,所以每一位16进制数字可以代表4位bit。那么,256位bit用16进制数字表示,当然是256除以4等于64位。因而私钥往往是由64位字符串组成,比较难记,助记词只有12个单词,相当于标记私钥,如果忘记私钥,用助记词也可以进入钱包并且找回私钥。

    Keystore

    Keystore是包含秘钥(公钥和私钥)以及只包含公钥的可信任证书实体的文件。一般是由jave数据证书管理工具生成的。

    如果说地址是银行卡卡号,公钥是银行卡密码,私钥是身份证,那么keystore就是银行卡。这样来看,似乎和钱包地址是一样的东西,但其实还是有区别的。虽然从转账的角度来看,银行卡卡号和银行卡有一样就行,但从狭义上来细究。Keystore作为数字钱包世界的“银行卡”,它包含着除“银行卡号”之外的其他信息,如编码以及加密方式等等。所以,keystore和钱包地址是功能上相似,定义上不同的两个东西。

    综上所述,最为重要的是私钥或者说私钥和助记词,直接确认持有人身份,一定要妥善保管好,它可以生成数字钱包所需要的一切东西。那如果私钥丢失怎么办呢,如果私钥丢失,拥有keystore和公钥,即持有银行卡和密码也可以继续使用钱包。如果私钥、助记词和公钥都丢失,那么你的数字钱包里的资产将永远封存。

    展开全文
  • 更好的中文近义:聊天机器人、智能问答工具。 synonyms可以用于自然语言理解的很多任务:文本对齐,推荐算法,相似度计算,语义偏移,关键字提取,概念提取,自动摘要,搜索引擎等。 Table of Content: Install...

    Synonyms

    Chinese Synonyms for Natural Language Processing and Understanding.

    更好的中文近义词:聊天机器人、智能问答工具包。

    synonyms可以用于自然语言理解的很多任务:文本对齐,推荐算法,相似度计算,语义偏移,关键字提取,概念提取,自动摘要,搜索引擎等。

    Table of Content:

    Welcome

    pip install -U synonyms
    

    兼容 py2 和 py3,当前稳定版本 v3.x

    提示:安装后初次使用会下载词向量文件,下载速度取决于网络情况。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-89mQkI8G-1611553162975)(./assets/3.gif)]

    本文档的配置和接口说明面向 python 工具包。

    Usage

    支持使用环境变量配置分词词表和 word2vec 词向量文件。

    环境变量描述
    SYNONYMS_WORD2VEC_BIN_MODEL_ZH_CN使用 word2vec 训练的词向量文件,二进制格式。
    SYNONYMS_WORDSEG_DICT中文分词主字典,格式和使用参考

    synonyms#nearby(word [, size = 10])

    import synonyms
    print("人脸: ", synonyms.nearby("人脸"))
    print("识别: ", synonyms.nearby("识别"))
    print("NOT_EXIST: ", synonyms.nearby("NOT_EXIST"))
    

    synonyms.nearby(WORD [,SIZE])返回一个元组,元组中包含两项:([nearby_words], [nearby_words_score])nearby_words是 WORD 的近义词们,也以 list 的方式存储,并且按照距离的长度由近及远排列,nearby_words_scorenearby_words对应位置的词的距离的分数,分数在(0-1)区间内,越接近于 1,代表越相近;SIZE 是返回词汇数量,默认 10。比如:

    synonyms.nearby(人脸, 10) = (
        ["图片", "图像", "通过观察", "数字图像", "几何图形", "脸部", "图象", "放大镜", "面孔", "Mii"],
        [0.597284, 0.580373, 0.568486, 0.535674, 0.531835, 0.530
    095, 0.525344, 0.524009, 0.523101, 0.516046])
    

    在 OOV 的情况下,返回 ([], []),目前的字典大小: 435,729。

    synonyms#compare(sen1, sen2 [, seg=True])

    两个句子的相似度比较

        sen1 = "发生历史性变革"
        sen2 = "发生历史性变革"
        r = synonyms.compare(sen1, sen2, seg=True)
    

    其中,参数 seg 表示 synonyms.compare 是否对 sen1 和 sen2 进行分词,默认为 True。返回值:[0-1],并且越接近于 1 代表两个句子越相似。

    旗帜引领方向 vs 道路决定命运: 0.429
    旗帜引领方向 vs 旗帜指引道路: 0.93
    发生历史性变革 vs 发生历史性变革: 1.0
    

    synonyms#display(word [, size = 10])

    以友好的方式打印近义词,方便调试,display(WORD [, SIZE])调用了 synonyms#nearby 方法。

    >>> synonyms.display("飞机")
    '飞机'近义词:
      1. 飞机:1.0
      2. 直升机:0.8423391
      3. 客机:0.8393003
      4. 滑翔机:0.7872388
      5. 军用飞机:0.7832081
      6. 水上飞机:0.77857226
      7. 运输机:0.7724742
      8. 航机:0.7664748
      9. 航空器:0.76592904
      10. 民航机:0.74209654
    

    SIZE 是打印词汇表的数量,默认 10。

    synonyms#v(word)

    获得一个词语的向量,该向量为 numpy 的 array,当该词语是未登录词时,抛出 KeyError 异常。

    >>> synonyms.v("飞机")
    array([-2.412167  ,  2.2628384 , -7.0214124 ,  3.9381874 ,  0.8219283 ,
           -3.2809453 ,  3.8747153 , -5.217062  , -2.2786229 , -1.2572327 ],
          dtype=float32)
    

    synonyms#sv(sentence, ignore=False)

    获得一个分词后句子的向量,向量以 BoW 方式组成

        sentence: 句子是分词后通过空格联合起来
        ignore: 是否忽略OOV,False时,随机生成一个向量
    

    synonyms#seg(sentence)

    中文分词

    synonyms.seg("中文近义词工具包")
    

    分词结果,由两个 list 组成的元组,分别是单词和对应的词性。

    (['中文', '近义词', '工具包'], ['nz', 'n', 'n'])
    

    该分词不去停用词和标点。

    synonyms#keywords(sentence [, topK=5, withWeight=False])

    提取关键词,默认按照重要程度提取关键词。

    keywords = synonyms.keywords("9月15日以来,台积电、高通、三星等华为的重要合作伙伴,只要没有美国的相关许可证,都无法供应芯片给华为,而中芯国际等国产芯片企业,也因采用美国技术,而无法供货给华为。目前华为部分型号的手机产品出现货少的现象,若该形势持续下去,华为手机业务将遭受重创。")
    

    PCA

    以“人脸”为例主要成分分析:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-258wxQn1-1611553162976)(assets/1.png)]

    Quick Get Start

    $ pip install -r Requirements.txt
    $ python demo.py
    

    Change logs

    更新情况说明

    Voice of Users

    用户怎么说:

    Data

    data is built based on wikidata-corpus.

    Valuation

    同义词词林

    《同义词词林》是梅家驹等人于 1983 年编纂而成,现在使用广泛的是哈工大社会计算与信息检索研究中心维护的《同义词词林扩展版》,它精细的将中文词汇划分成大类和小类,梳理了词汇间的关系,同义词词林扩展版包含词语 7 万余条,其中 3 万余条被以开放数据形式共享。

    知网, HowNet

    HowNet,也被称为知网,它并不只是一个语义字典,而是一个知识系统,词汇之间的关系是其一个基本使用场景。知网包含词语 8 余条。

    国际上对词语相似度算法的评价标准普遍采用 Miller&Charles 发布的英语词对集的人工判定值。该词对集由十对高度相关、十对中度相关、十对低度相关共 30 个英语词对组成,然后让 38 个受试者对这 30 对进行语义相关度判断,最后取他们的平均值作为人工判定标准。然后不同近义词工具也对这些词汇进行相似度评分,与人工判定标准做比较,比如使用皮尔森相关系数。在中文领域,使用这个词表的翻译版进行中文近义词比较也是常用的办法。

    对比

    Synonyms 的词表容量是 435,729,下面选择一些在同义词词林、知网和 Synonyms 都存在的几个词,给出其近似度的对比:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-urgYjDp7-1611553162976)(./assets/5.png)]

    注:同义词林及知网数据、分数来源。Synonyms 也在不断优化中,新的分数可能和上图不一致。

    更多比对结果

    Used by

    Github 关联用户列表

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xmRZhwiP-1611553162977)(./assets/6.png)]

    Benchmark

    Test with py3, MacBook Pro.

    python benchmark.py
    

    ++++++++++ OS Name and version ++++++++++

    Platform: Darwin

    Kernel: 16.7.0

    Architecture: (‘64bit’, ‘’)

    ++++++++++ CPU Cores ++++++++++

    Cores: 4

    CPU Load: 60

    ++++++++++ System Memory ++++++++++

    meminfo 8GB

    synonyms#nearby: 100000 loops, best of 3 epochs: 0.209 usec per loop

    Live Sharing

    52nlp.cn

    机器之心

    线上分享实录: Synonyms 中文近义词工具包 @ 2018-02-07

    Statement

    Synonyms发布证书 MIT。数据和程序可用于研究和商业产品,必须注明引用和地址,比如发布的任何媒体、期刊、杂志或博客等内容。

    @online{Synonyms:hain2017,
      author = {Hai Liang Wang, Hu Ying Xi},
      title = {中文近义词工具包Synonyms},
      year = 2017,
      url = {https://github.com/chatopera/Synonyms},
      urldate = {2017-09-27}
    }
    

    References

    wikidata-corpus

    word2vec 原理推导与代码分析

    Frequently Asked Questions (FAQ)

    1. 是否支持添加单词到词表中?

    不支持,欲了解更多请看 #5

    1. 词向量的训练是用哪个工具?

    Google 发布的word2vec,该库由 C 语言编写,内存使用效率高,训练速度快。gensim 可以加载 word2vec 输出的模型文件。

    1. 相似度计算的方法是什么?

    详见 #64

    Authors

    Hai Liang Wang

    Hu Ying Xi

    Give credits to

    Word2vec by Google

    Wikimedia: 训练语料来源

    gensim: word2vec.py

    SentenceSim: 相似度评测语料

    jieba: 中文分词

    License

    MIT

    Copyright (2018-2020) Chatopera Inc. https://www.chatopera.com

    Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.OF

    chatoper banner

    Chatopera 云服务

    https://bot.chatopera.com/

    Chatopera 云服务是一站式实现聊天机器人的云服务,按接口调用次数计费。Chatopera 云服务是 Chatopera 机器人平台的软件即服务实例。在云计算基础上,Chatopera 云服务属于聊天机器人即服务的云服务。

    Chatopera 机器人平台包括知识库、多轮对话、意图识别和语音识别等组件,标准化聊天机器人开发,支持企业 OA 智能问答、HR 智能问答、智能客服和网络营销等场景。企业 IT 部门、业务部门借助 Chatopera 云服务快速让聊天机器人上线!

    展开查看 Chatopera 云服务的产品截图

    自定义词典

    自定义词条

    创建意图

    添加说法和槽位

    训练模型

    测试对话

    机器人画像

    系统集成

    聊天历史

    立即使用

    展开全文
  • VocabWidener 工具包含旨在帮助小学生学习... 词汇游戏由定义和同义游戏组成。 在定义游戏中,将显示一个单词及其图像,用户必须选择单词的含义。 还有一个声音按钮,可以播放单词的发音。 图像和声音的使用利用
  • 钱包的原理-助记

    万次阅读 2018-06-07 17:10:56
    5、生成的有顺序的单词就是助记 如图: 从熵到助记 二、从助记生成种子 助记表示长度为128至256位的熵。 通过使用密钥延伸函数PBKDF2,熵被用于导出较长的(512位)种子。 PBKDF2的基本原理是通过一个伪...

    首先,我们需要知道一点,比特币钱包里面并没有比特币。钱包是管理密钥、地址、跟踪余额和创建交易的软件。我们的比特币数据是存储在区块链上的,而不是在钱包里。
    经过前面几篇文章的解读,我们知道一个私钥生成公钥,公钥生成地址,这三者是一一对应的,就是一个私钥只有一个公钥和一个地址。但是我们在往交易所充币的时候,看到交易所为我们每个人生成一个独一无二的地址。这是怎么做的呢?接下来均益就来解读比特币的钱包。
    目前钱包分为两种,一种是非确定性(随机)的钱包,就是随机生成多个私钥,钱包管理这些私钥。如果需要成千上万的地址,通过随机的方式来生成私钥,这就需要存储那么多无规律的私钥,这样就很麻烦不好管理。另一种是确定性(种子)的钱包,就是通过种子可以生成无数的私钥,我们只需要记住种子就可以了。我们在使用钱包时记住的助记词可以生成种子,只要我们保管好助记词,我们的币就能找回来。那么问题来了?

    1. 种子是怎么来的?
    2. 种子是怎么生成无数地址的?

    带着这两个问题,我们来研究一下。先上一个大概图,然后我们再一步一步来解析


    钱包生成私钥

    主要流程是这样的

    第一,随机生成128到258位的随机数,我们这里叫做熵;
    第二,熵经过一定处理方法,生成助记词;
    第三,助记词经过密钥延伸函数PBKDF2,生成种子;
    第四,种子经过HMAC-SHA512算法,生成母密钥;
    第五,通过CKD(child key derivation)函数,母密钥生成众多子密钥。

    接下来均益一步步解析这里面的细节

    一、从熵到助记词

    1、随机生成一个128到258位的数字,叫做熵
    2、熵通过SHA256哈希得一个值,取前面的几位(熵长/32),记为y
    3、熵和y组成一个新的序列,
    4、将新序列以11位为一部分,已经预先定义2048个单词的字典做对应,单词的列表像这样的 https://github.com/trezor/python-mnemonic/blob/master/mnemonic/wordlist/english.txt
    5、生成的有顺序的单词组就是助记词
    如图:

    从熵到助记词

    二、从助记词生成种子

    助记词表示长度为128至256位的熵。 通过使用密钥延伸函数PBKDF2,熵被用于导出较长的(512位)种子。
    PBKDF2的基本原理是通过一个伪随机函数(例如HMAC函数),把明文和一个盐值作为输入参数,然后重复进行运算,并最终产生密钥。如果重复的次数足够大,破解的成本就会变得很高。而盐值的添加也会增加“彩虹表”攻击的难度。
    比特币钱包中,PBKDF2函数的第一个参数是助记词,第二个参数盐,由字符串常数“助记词”与可选的用户提供的密码字符串连接组成。使用HMAC-SHA512算法,使用2048次哈希来延伸助记符和盐参数,产生一个512位的值作为其最终输出。 这个512位的值就是种子。如图


    从助记词生成种子

    三、从种子到母密钥

    512位分成平均分成两部分,左边的256位为母私钥,右边的256位为链码。母私钥、链码和索引号,CKD(child key derivation)函数去从母密钥衍生出子密钥。如图


    从种子到主密钥

    三、从母密钥到子密钥

    母密钥、链码、索引合并在一起并且用HMAC-SHA512函数散列之后可以产生512位的散列。所得的散列可被拆分为两部分。散列右半部分的256位产出可以给子链当链码。左半部分256位散列以及索引码被加载在母私钥上来衍生子私钥。在图中,我们看到这个说明——索引集被设为0去生产母密钥的第0个子密钥(第一个通过索 引)。


    从主密钥到子密钥

    四、扩展密钥

    母密钥和链码结合叫做扩展密钥,拥有扩展私钥可以推导出子私钥,扩展公钥可以推导出子公钥。拥有扩展公钥就可以推导出子公钥,在服务器不需要母私钥也可以,这样就更安全更方便。但是还有一个问题,那就是扩展公钥包含有链码,如果子私钥被知道或者被泄漏的话,链码就可以被用来衍生所有的其他子私钥。简单地泄露的私钥以及一个母链码,可以暴露所有的子密钥。更糟糕的是,子私钥与母链码可以用来推断母私钥。
    为此,HD钱包使用一种叫做硬化衍生(hardened derivation)的替代衍生函数。这就“打破”了母公钥以及子链码之间的关系。这个硬化衍生函数使用了母私钥去推导子链码,而不是母公钥。这就在母/子顺序中创造了一道“防火墙”——有链码但并不能够用来推算子链码或者姊妹私钥。强化衍生函数看起来几乎与一般的衍生的子私钥相同,不同的是母私钥被用来输入散列函数中而不是母公钥。如图


    扩展密钥

    五、钱包索引

    1、前面说到索引和私钥链码可以生成子密钥,这个索引号码是32位的整数。为了区分密钥是从正常衍生函数中衍生出来还是从强化衍生函数中产出,这个索引号被分为两个范围。索引号在0和2^31–1(0x0 to 0x7FFFFFFF)之间的是只被用在常规衍生。索引号在231和232– 1(0x80000000 to 0xFFFFFFFF)之间的只被用在强化衍生。因此,索引号小于231就意味着子密钥是常规的,而大于或者等于231的子密钥就是强化型的。

    2、钱包索引识别路径
    HD钱包中的密钥是用“路径”命名的,且每个级别之间用斜杠(/)字符来表示(见表5-6)。由主私钥衍生出的私钥起始以“m”打头。由主公钥衍生的公钥起始以“M“打头。因此,母密钥生成的第一个子私钥是m/0。第一个公钥是M/0。第一个子密钥的子密钥就是m/0/1,以此类推。
    密钥的“祖先”是从右向左读,直到你达到了衍生出的它的主密钥。举个例子,标识符m/x/y/z描述的是子密钥m/x/y的第z个子密钥。而子密钥m/x/y又是m/x的第y个子密钥。m/x又是m的第x个子密钥。


    钱包密钥识别符(路径)
    展开全文
  • 一、什么是HD钱包: 它是分层确定性(Hierarchical Deterministic)钱包的缩写 HD Wallets,是目前广泛使用的虚拟货币钱包标准。HD钱包从单个根种子(root seed)中创建,为128到256位的随机数,任何兼容HD钱包的...

    一、什么是HD钱包:

         它是分层确定性(Hierarchical Deterministic)钱包的缩写 HD Wallets,是目前广泛使用的虚拟货币钱包标准。HD钱包从单个根种子(root seed)中创建,为128到256位的随机数,任何兼容HD钱包的根种子也可重新创造整个HD钱包,所以拥有HD钱包的根种子就等于拥有了所有密钥,方便存储、导入及导出。

    二、BIP32/BIP39/BIP44含义:

    BIP32:定义 Hierarchical Deterministic wallet (简称 "HD Wallet"),是一个系统可以从单一个 seed 产生一树状结构储存多组            keypairs(私钥和公钥)。好处是可以方便的备份、转移到其他相容装置(因为都只需要 seed),以及分层的权限控制等

    BIP39:将 seed 用方便记忆和书写的单字表示。一般由 12 个单字组成,称为 mnemonic code(phrase),中文称为助记词或助记码

    BIP44:基于 BIP32 的系统,赋予树状结构中的各层特殊的意义。让同一个 seed 可以支援多币种、多帐户等。各层定义如下:

    m / purpose' / coin_type' / account' / change / address_index

    其中的 purporse' 固定是 44',代表使用 BIP44。而 coin_type' 用来表示不同币种,

    例如 BTC 就是 0',ETH 是 60'   ETC 是 61

    三、多链钱包的助记词、私钥、地址生成。

     注:所需要的依赖包安装

    安装 bip39:https://www.npmjs.com/package/bip39
    
    npm install bip39  --save  
    
    安装 ethers.js:  https://docs.ethers.io/ethers.js/html/index.html
    
    npm install ethers  --save
    
    安装 bitcoinjs-lib:https://www.npmjs.com/package/bitcoinjs-lib
    
    npm install bitcoinjs-lib  --save
    
    安装 eosjs-ecc:https://github.com/EOSIO/eosjs-ecc#randomkey
    
    npm install eosjs-ecc --save
    //引用依赖(根据工程环境安装的不同版本对应使用)
    import { ethers } from 'ethers';
    import bitcoin from 'bitcoinjs-lib';
    import bip39 from 'bip39';
    import bip32 from 'bip32';
    import eosEcc from 'eosjs-ecc';

    1、HD钱包助记词生成:

    ethers.js生成助记词:
    var mnemonic = ethers.Wallet.createRandom().mnemonic
    bip39生成助记词:
    var mnemonic = bip39.generateMnemonic()

    2、BTC钱包通过助记词生成私钥、公钥、地址:

    //设置生成测试or正式环境的钱包
    const network = bitcoin.networks.bitcoin
    // 计算seed:
    const seed = bip39.mnemonicToSeed(mnemonic)
    const root = bip32.fromSeed(seed,network)
    const path = "m/44'/0'/0'/0/0";
    const keyPair = root.derivePath(path)
    const privateKey = keyPair.toWIF()
    console.log("BTC私钥:", privateKey)
    const publicKey = keyPair.publicKey.toString("hex")
    console.log("BTC公钥:", publicKey)
    let address = bitcoin.payments.p2pkh({ pubkey: keyPair.publicKey , network:network})
    console.log("BTC地址:", address.address, "\n")

    3、ETH钱包通过助记词生成私钥、公钥、地址:

    var Wallet = ethers.Wallet.fromMnemonic(mnemonic);
    var privateKey = Wallet.privateKey;
    console.log("ETH私钥:",privateKey)
    var address = Wallet.address;
    console.log("ETH地址:",address)
    var compressedPublicKey = Wallet.compressedPublicKey;
    console.log("ETH公钥:",compressedPublicKey)
    
    //生成新的助记词、私钥、地址
    var wallet = ethers.Wallet.createRandom();
    let mnemonic = wallet.mnemonic;
    var address = wallet.address;
    console.log("ETH地址:"address)
    var privateKey = wallet.privateKey;
    console.log("ETH私钥:",privateKey)
    var compressedPublicKey = wallet.signingKey.keyPair.compressedPublicKey;
    console.log("ETH公钥:",compressedPublicKey)
    

    4、EOS钱包通过助记词生成私钥、公钥:

    var eosPrivate = eosEcc.seedPrivate(mnemonic);
    console.log("EOS私钥:",eosPrivate)
    const  eosPubkey = eosEcc.privateToPublic(eosPrivate);
    console.log("EOS公钥:",eosPubkey)
    
     //随机生成新的私钥公钥
    eosEcc.randomKey().then(privateKey => {
         console.log('Private Key:\t', privateKey) 
         console.log('Public Key:\t', eosEcc.privateToPublic(privateKey)) 
      })
    
    
    如何注册EOS账户:
    需安装: 
    npm install eosjs --save
    eos环境配置:
    var Eos = require('eosjs')
    var eosConfig = {
        keyProvider: ['私钥'], // 配置私钥字符串
        httpEndpoint: 'http://51.15.224.168:8888', //DEV开发链url与端口
        //httpEndpoint: 'https://nodes.get-scatter.com', //主网
        chainId: "038f4b0fc8ff18a4f0842a8f0564611f6e96e8535901dd45e43ac8691a1c4dca", // 通过cleos get info可以获取chainId
        //chainId: "aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906", //主网
        broadcast: true,
    }
    var eos = Eos(eosConfig)
    
                var creatoraccount = "accounthr123"; //主账号
                var newaccount = "sdrghiochaiq"; //新账号
                var newaccount_pubkey = pubkey; //新账号的公钥
                //构建transaction对象
                eos.transaction(tr => {
                    //新建账号
                    tr.newaccount({
                        creator: creatoraccount,
                        name: newaccount,
                        owner: newaccount_pubkey,
                        active: newaccount_pubkey
                    })
    
                    //为新账号充值RAM
                    tr.buyrambytes({
                        payer: creatoraccount,
                        receiver: newaccount,
                        bytes: 3072
                    })
                    //为新账号抵押CPU和NET资源
                    tr.delegatebw({
                        from: creatoraccount,
                        receiver: newaccount,
                        stake_net_quantity: '1.0000 EOS',
                        stake_cpu_quantity: '1.0000 EOS',
                        transfer: 0
                    })
                }).then(r => {
                    console.log(r);
                }).catch(e => {
                    console.log(e)
                });
               
            }catch (e){
                
            }
    
    

    测试结果:

    学如逆水行舟,不进则退。心似平原跑马,易放难收。全栈工程师是指掌握多种技能,并能利用多种技能独立完成产品的人。 也叫全端工程师(同时具备前端和后台能力),英文Full Stack engineer。【人工智能】【区块链】【系统/网络/运维】【云计算/大数据】【数据库】【移动开发】【后端开发】【游戏开发】【UI设计】【微服务】【爬虫】【Java】【Go】【C++】【PHP】【Python】【Android/IOS】【HTML/CSS】【JavaScript】【Node】。。。

    欢迎各位大神萌新一起专研分享各行各业技术!

    Chain区块链开发社区:593674370

     

     

     

     

    展开全文
  • 传送门:wordVectors开源算法实现word2vec向量生成 R语言中rword2vec和wordVectors均能实现word2vec向量生成,目前尚未研究两者之间的优劣(但从算法的description来看,建议用rword2vec) rword2vec...
  • 微信达人抓分析

    千次阅读 2020-03-31 17:07:27
    当然需要的就是一个可以抓取数据的工具软件了,提到这里小伙伴们首先想到的应该就是wireshark,这个抓工具简直是牛X了,抓取来的数据能安照OSI 七层模型把数据分的明明白白啊。不得不说真™牛X。 不过我们...
  • HPB钱包助记生成和备份

    千次阅读 2019-04-20 06:50:47
    BIP32:定义 Hierarchical Deterministic wallet (简称 “HD Wallet”),是一个系统可以从单一个 seed 产生一树状结构储存多 keypairs(私钥和公钥)。好处是可以方便的备份、转移到其他相容装置(因为都只需要 ...
  • TCP组包问题及处理方法

    万次阅读 2016-03-05 18:10:44
    TCP组包问题及处理方法 问题的表述 原因的剖析 发送端处理方法 接收端处理方法 总结 问题的表述问题的背景是这样的:有一个系统,那有后台服务器,也有移动端的客户端。当客户端上线时,服务器会将指定的数据库的...
  • Synonyms: 中文近义工具

    万次阅读 2018-02-20 12:06:13
    最好的中文近义工具: https://github.com/huyingxi/Synonyms/。 synonyms 可以用于自然语言理解的很多任务:文本对齐,推荐算法,相似度计算,语义偏移,关键字提取,概念提取,自动摘要,搜索引擎等。...
  • synonyms.seg("中文近义工具") 分词结果,由两个list组成的元组,分别是单词和对应的词性。 (['中文', '近义', '工具'], ['nz', 'n', 'n']) 2、查找近义 import synonyms print("人脸: %s" % ...
  • 拼多多商家开店了后需要去进行推广,像直通车推广方式就挺受商家们欢迎的,商家们需要去设置好关键词哦,有一个智能词包的功能,可以使用很多的拼多多,商家想知道到底有没有必要开通智能词包? 拼多多智能词包要...
  • 通过使用“从 URL 添加”功能,每个可以轻松添加到 TextExpander,只需复制下面的链接。 https://raw.githubusercontent.com/Automattic/text-expander-acronyms/master/acronyms.textexpander
  • 函数定义函数的语法 练习计算两数之和 练习函数之添加数据 ...包包的组成 的优点 规范的创建 体的创建 的调用 练习的主体部分 练习的调用函数函数(function)分为两种,一种是oracle数据库自身
  • 你知道什么是RVN冷钱包吗?你知道什么是RVN热钱包吗?你知道那个RVN钱包更安全吗?今天小编帮你了解那种RVN钱包更为安全。 什么是数字加密货币钱包?钱包我们都知道,是用来装钱的,而在区块链的世界里,钱包是用来装...
  • 数字货币钱包助记生成流程浅析

    千次阅读 2018-09-05 16:24:47
    依据 BIP39 可以设置多国语言作为助记,以下以 English 为例: 1、随机产生一个byte数组random,长度需要为4的倍数。 2、算法SHA-256 计算random 的哈希 hash。 3、将random、hash 转为二进制数组 randomBit...
  • 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓什么是热钱包? 热钱包是指互联网能够访问你私钥的钱包,热钱包往往是通过服务器架设的钱包形式比如...
  • 近日,Hai Liang Wang 和胡小夕在 GitHub 开放了一个中文近义工具 Synonyms,它可用于如文本对齐、推荐算法、相似度计算、语义偏移、关键字提取、概念提取、自动摘要、搜索引擎等很多 NLP 任务。...
  • 最好的中文近义工具。synonyms可以用于自然语言理解的很多任务:文本对齐,推荐算法,相似度计算,语义偏移,关键字提取,概念提取,自动摘要,搜索引擎等。Table of Content:InstallUsageQuick Get ...
  • 、元和框架

    2017-08-11 09:54:31
    .NET Core 是一种由 NuGet 包组成的平台。 有些产品体验受益于的细粒度定义,而另一些受益于粗粒度的定义。 为了适应这种二元定义,一款好的产品应该作为一细粒度的发布,然后在更粗的粒度块中进行描述,...
  • Maven 打包

    千次阅读 2016-01-02 10:37:07
    打包“这个听起来比较土,比较正式的说法应该是”构建项目软件包“,具体说就是将项目中的各种文件,比如源代码、编译生成的字节码、配置文件、文档,按照规范的格式生成归档,最常见的当然就是JAR和WAR了,...
  • 和模块笔记

    万次阅读 2019-07-26 11:46:43
    模块本身就是一个文件,所有 PY 代码都可以在文件中直接书写。不过我们开发共用模块时,最好在模块中书写以下内容。 变量 模块中的属性值 函数 单独的功能 类 形容:功能组合 测试模块代码 临时使用,被导入时...
  • oracle中常用介绍以及的用法

    千次阅读 2016-01-02 17:43:26
    Oracle 10g提供的系统多达几百个,此处只介绍一些常用的系统。 一、DBMS_OUTPUT 1、概述 ...作用:用于输入和输出信息,使用过程PUT和PUT_LINES可以将...下面讲述组成: 2、组成 1)、ENABLE 说明:
  • Oracle 系统

    千次阅读 2013-11-11 10:56:36
    Oracle 系统 分类: Oracle 2013-08-28 17:37 161人阅读 评论(0) ...Oracle系统 ...Oracle 系统 ...Oracle 10g提供的系统多达几百个,...作用:用于输入和输出信息,使用过程PUT和PUT_LINES可以将信息发送到缓
  • NLP 工具 大调查 自然语言处理工具合集  可以想一想,如何你把NLP领域的所有的工具都能掌握的数如家珍,是不是很NB?必然的。  只用过这里面的一部分。。。  这份调查是基于使用语言差别来归纳的,别问我...
  • .NET Core 是一种由 NuGet 包组成的平台。 有些产品体验受益于的细粒度定义,而另一些受益于粗粒度的定义。 为了适应这种二元定义,一款好的产品应该作为一细粒度的发布,并在更粗的粒度块中进行分发,单个...
  •  喜欢刷机的朋友可能听说过两个名词:底和基带,不同于我们熟悉的ROM,这两个什么意思呢?下面由小编为大家带来有关它们的相关知识。  底的出现是因为早期的手机bootloader被官方锁住,玩家无法对内核...
  • 在之前的开篇提到了text2vec,...开篇内容参考:重磅︱R+NLP:text2vec——New 文本分析生态系统 No.1(一,简介) 文档可以以多种方式表达,单独词组、n-grams、特征hashing化的方法等。 一般来说文本分析的步骤有

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 277,198
精华内容 110,879
关键字:

包可以组什么词