metadata: {"title": "AbakhusJS", "logoImg": "bafkreig3kw2ci4pzjv5zd7fj74mcvcfhko5ogb5bzjwrx2ovhibes326zq", "website": "https://linktr.ee/abakhus", "bannerImg": "bafkreicrvbh3cvim3ag4d6abaf6eorbxnmkhydhyx34yuub4hu6enwq2wa", "createdAt": 1713914283992, "userGithub": "amrdavila", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..HFbrkwCeZCazlWxPCShoEQd55NDBpSUqqVrTbsDhEDFWMo-Mf56KVfNkKCEdmYVyG0ESl8wvjge5PQfwJQoiDw", "type": "Ed25519Signature2018", "created": "2024-04-24T01:02:26.119Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-04-24T01:02:26.119Z", "expirationDate": "2024-07-23T01:02:26.119Z", "credentialSubject": {"id": "did:pkh:eip155:1:0xC89d19873d85af16cdEFCE3aC444e09576fc5769", "hash": "v0.0.0:aZyrPhtN22W3vEQjkjrILVxul4ozl8ibCqN7Wr4+tNs=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextGithubOrg#Abakhus#53997575"}}, "twitter": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..t3DGCnUF-FP_o1RYA1fbm_Z3qvqd7gXP4dUwEmGmKTPVefuYllHwDwddNgHlCFDRze-NisjyIF5MKyPv6_0kAQ", "type": "Ed25519Signature2018", "created": "2024-04-23T23:15:08.246Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-04-23T23:15:08.245Z", "expirationDate": "2024-07-22T23:15:08.245Z", "credentialSubject": {"id": "did:pkh:eip155:1:0xC89d19873d85af16cdEFCE3aC444e09576fc5769", "hash": "v0.0.0:+JSt3fB/gX6G0hBv6jmBn09x7K+40ykYPQ0rFzK+E74=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextTwitter#abakhus"}}}, "description": "# Team\nThis project is to be developed by the same team that developed the Abakhus dApp.\n# Project description\nWe started to develop Abakhus dApp (a privacy-preserving tokenization platform) early 2022 and deployed to mainnet in November 2023. An API to access Abakhus was developed then we decided to launch a Blockchain Innovation Hub (https://github.com/iberoam/blockchain-innovation-hub) and Hacker House (https://github.com/iberoam/hacker-house) to promote the development of additional projects and dApps using Abakhus API. This proposal is to develop a library named AbakhusJS as part of the Abakhus protocol. AbakhusJS is a TypeScript library of the Abakhus protocol, designed to interact with any blockchain network by utilizing design pattern concepts such as Abstract Factory, Factory Method, Singleton, Composite, and Observer. This approach provides a versatile, maintainable, and scalable architecture.\n\n# Achievements related to Abakhus dApp\n\n(i) Q1 2023: we partnered with IberoAm community and successfully organized a disrupting IRL event to onboard scientists, data privacy advocates and social impact leaders on the blockchain ecosystem called \"From Genomes and Privacy to Social Impact using Blockchain\" funded by Eth-Colombia and Clr.fund. The whole event was recorded and is publicly available (to serve as an educational resource) at the Technological Park of the Rio de Janeiro Federal University youtube channel:\nhttps://www.youtube.com/live/FxnJ-pJgRsU?feature=share\n(ii) Q3 2023: Mid-September 2023 we presented a talk about Abakhus (privacy-preserving) dApp at the Blockchain Rio Festival:\nhttps://twitter.com/SecretNetwork/status/1702412567673442759\n(iii) Q4 2023: Early October 2023 we presented a talk about our privacy-preserving Abakhus dApp at the Rio Innovation Week:\nhttps://twitter.com/abakhus/status/1704981536070635629\n(iv) Q4 2023: Late October we presented a talk about \u201cBlockchain and Privacy\u201d for the students of the Rio de Janeiro Rural Federal University:\nhttps://twitter.com/amrdavila/status/1718047590388777159/\n(v) Q1 2024: We officially launched our Blockchain Innovation Hub on March 19th, during the DeSci Rio 2024 edition:\nhttps://twitter.com/abakhus/status/1763547619454837040\nhttps://www.linkedin.com/feed/update/urn:li:activity:7176551950182670336\n\nThe creation of the Blockchain Innovation Hub was driven by the need to promote networking and partnerships among academia, private sector and government, aiming to develop new projects and dApps in the blockchain space. Our Hub offers a Hacker House, Courses on Blockchain in the Federal Universities of Rio de Janeiro and Blockchain-related events/conferences. The tokenization platform to be used for Cohort 1 of the Hacker House is our Abakhus dApp, meaning selected proposals will be mentored (Ideation and Prototyping) using the Abakhus dApp API. The development of a AbakhusJS library to interact with several blockchain networks is really needed not only for the Hacker House cohorts but for anyone to access that, test and enter the blockchain space.\n\n# AbakhusJS Requisites:\nAbstract Factory: Create an abstraction layer to produce different types of blockchain network clients, each specific to a particular blockchain protocol or network.\nFactory Method: Implement factory methods within the Abstract Factory to instantiate specific client implementations based on the target blockchain network.\nSingleton: Ensure a single instance of each blockchain client exists, preserving resources and ensuring consistent state throughout the application.\nComposite: Use the Composite pattern to represent and manage complex blockchain objects such as smart contracts and accounts, allowing for hierarchical organization and easier interaction.\nObserver: Employ the Observer pattern to enable event-driven communication and notification for blockchain events (e.g., transaction confirmation, new block) and allow components to subscribe and respond accordingly.\nType Safety: Utilize TypeScript's strong type system to define interfaces and types for blockchain clients, smart contracts, and other components.\nError Handling: Implement robust error handling strategies for blockchain interactions, including retries and fallback mechanisms.\nSecurity: Integrate secure practices such as input validation, sanitization, and private key management.\nDocumentation: Provide comprehensive documentation and clear references for users of AbakhusJS.\n\n# AbakhusJS Roadmap:\n(Q2 2024) Planning and Design: Define library objectives, use cases, and key abstractions. Design the architecture incorporating the required design patterns.\n(Q2-Q3 2024) Development: Implement the Abstract Factory for creating blockchain clients. Develop Factory Methods for different network clients. Implement Singleton for client instances. Use Composite for complex blockchain objects. Integrate Observer for event handling and notifications. Define TypeScript interfaces and types for clarity and safety.\n(Q3 2024) Testing and Optimization: Conduct unit and integration tests for each component. Optimize performance and memory usage.\n(Q2-Q4 2024) Documentation: Create thorough documentation including code examples, usage guidelines, and API references.\n(Q3-Q4 2024) Release and Maintenance: Release the library with versioning and changelogs. Monitor user feedback and make continuous improvements. Maintain compatibility with new blockchain protocols and updates.\n\nBy developing AbakhusJS we will abstract most of the blockchain interaction layer, including smart-contracts deployment for web2 developers then we will onboard them into web3 without the need for them to learn Solidity or Rust. This will have a double impact: (i) facilitating web3 education for web2 developers, and (ii) a more user-friendly way to develop new web3 applications\n\n# AbakhusJS repository\nhttps://github.com/Abakhus/AbakhusJS", "logoImgData": {}, "bannerImgData": {}, "projectGithub": "Abakhus", "projectTwitter": "abakhus"}
name: AbakhusJS