GithubHelp home page GithubHelp logo

atomicals-core-go's Introduction

atomicals-core ⚛️

Atomicals: 是一个使用染色方法在BTC链上发行资产的协议,作者Arthur's twitter(X),该协议包括:realm,nft和ft

  • 目前Arthur 并未以文档或protocal形式披露atomicals的具体内容。但是提供了一个python版本的实现,包括:

Atomicals-core: 是atomicals索引器atomicals-electrumx的golang版本,并以文本方式提供了atomicals协议的详细内容(在本仓库的doc目录下)

  • 请注意,如果Arthur想要对atomicals-electrumx进行协议升级或更新,Atomicals-core是滞后的
  • 在未来一段时间内yiming仍然会维护该项目(及时同步atomicals-electrumx的更新)

很高兴Renaissance LabAtomicals Market加入到atomicals-core的开发中来。 感谢Arthur巧妙的构思,为我们带来了atomicals协议。我们需要对atomicals协议有更加清晰的认知,并在人们脑海中凝聚牢固的共识。 atomicals-core将致力于提供规范的atomicals协议文本和简洁高效的atomicals协议索引器。它是一个纯粹的开源,没有所谓的官方团队,项目方,欢迎任何对此感兴趣的人参与建设。您的参与会让atomicals更加去中心化!

How to run atomicals-core

  • you need a btc node
  • install golang and docker
  • start a postgres sql by docker
$ docker run --name postgres -p 5432:5432 -e POSTGRES_DB=postgres -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=admin123 postgres:14
  • download atomicals-core
  • edit conf/config.json : update it with your btc node url, user and password, and sql_dns("sql_dns": "host= 127.0.0.1 user=admin password=admin123 dbname=postgres port=5432 sslmode=disable")
  • cd to atomicals-core path
go mod tidy
cd atomicals/DB/postsql/init/
go run ./
cd ../../../../
nohup go run ./ > log.txt 2>&1 &

Performance

  • atomicals-core will spend 2.5s to process one block. if currentBlockHeight=834773, it will take about 20 hours to sync all btc blocks

TODO:

  • ft 资产部署和转账 测试
  • nft-realm及subrealm部署和转账 逻辑完善+测试
    • payment的逻辑
  • nft-container及item部署和转账 逻辑完善+测试
    • payment的逻辑
  • nft 部署和转账 逻辑完善+测试
    • PayLoad中有一个存储nft图片信息的字段:image.png,但是在golang中解析为cbor结构体时有问题,我还没有解决它
    • PayLoad.Arg中有一个parents字段,它在get_mint_info_op_factory中被使用,但是我还没有捕捉到这个字段
  • 补齐如下命令处理逻辑
    • operationType = "dat" // dat - Store data on a transaction (dat)
    • operationType = "evt" // evt - Message response/reply
    • operationType = "mod" // mod - Modify general state
    • operationType = "sl" // sl - Seal an NFT and lock it from further changes forever
  • TraceTx可以并发处理
  • atomicals协议文档编写
  • 一个api服务,提供必要的http接口
  • golang命令工具

atomicals-core-go's People

Contributors

yimingwow avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.