From 317043149909900005569ac49a033e31bd803ee1 Mon Sep 17 00:00:00 2001 From: Palash A Date: Mon, 4 Oct 2021 22:40:16 -0400 Subject: [PATCH 1/5] landing init --- .gitignore | 1 - FULL-LICENSE | 621 -------------------------------- LICENSE | 16 - README.md | 48 --- docs/scalability.md | 54 --- src/e/README.md | 29 -- src/e/index.html | 9 - src/f/README.md | 16 - src/f/index.html | 15 - src/static/js/colours.js | 20 - src/static/js/compiler.js | 34 -- src/static/js/crypt.js | 22 -- src/static/js/editor.js | 25 -- src/static/js/gpt3.js | 11 - src/static/js/node.js | 25 -- src/static/js/persona.js | 30 -- src/static/js/trotter.js | 22 -- src/web3/contracts/exchange.sol | 6 - src/web3/contracts/faucet.sol | 10 - src/web3/contracts/persona.sol | 6 - src/web3/contracts/publish.sol | 7 - 21 files changed, 1027 deletions(-) delete mode 100644 .gitignore delete mode 100644 FULL-LICENSE delete mode 100644 LICENSE delete mode 100644 README.md delete mode 100644 docs/scalability.md delete mode 100644 src/e/README.md delete mode 100644 src/e/index.html delete mode 100644 src/f/README.md delete mode 100644 src/f/index.html delete mode 100644 src/static/js/colours.js delete mode 100644 src/static/js/compiler.js delete mode 100644 src/static/js/crypt.js delete mode 100644 src/static/js/editor.js delete mode 100644 src/static/js/gpt3.js delete mode 100644 src/static/js/node.js delete mode 100644 src/static/js/persona.js delete mode 100644 src/static/js/trotter.js delete mode 100644 src/web3/contracts/exchange.sol delete mode 100644 src/web3/contracts/faucet.sol delete mode 100644 src/web3/contracts/persona.sol delete mode 100644 src/web3/contracts/publish.sol diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 496ee2c..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.DS_Store \ No newline at end of file diff --git a/FULL-LICENSE b/FULL-LICENSE deleted file mode 100644 index ed990f8..0000000 --- a/FULL-LICENSE +++ /dev/null @@ -1,621 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 399755e..0000000 --- a/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -tampopo [dot] eth -- Won't you unravel me, my love? -Copyright (C) 2021 Palash A. - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see -or the full license reproduced in the repository for convenience. diff --git a/README.md b/README.md deleted file mode 100644 index 1e3b862..0000000 --- a/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# tampopo [dot] eth -> Won't you unravel me, my love ?! - -We can be anyone we want to be on the internet, so let's all be real, in the hopes of abolishing from this world duality we may rise above and all be cubed ! - -## The Revolution - -At the end of the day, all of us are stories (some lucky one get to be songs); This project aims to connect stories and _web3_ by providing the space (in your time) for you to outpour your stories for the world. The world is filled with stories, which for one reason or another, are often silenced; no more! Web3 abstracts all entities into nodes, not caring if the node represents an idea, a machine, an organisation, or a person; Furthermore, these nodes can have their own economy, thereby, in some sense, enabling barter systems; or a global creative economy. - -This project provides a platform for `users` to create `personas` and share stories as those `personas`; Upon story reads, the _storytellers_ are _rewarded_ by their reader's _attention_ (made tangible via `TP tokens`). The minting of fresh `TP` occurs upon persona registration (at `tampopo.eth`), story minting (at `emptyyourcup.com`), and on _thread pulling_ (at `pullmythread.com`). Furthermore, other tokens may be _streamed_ to mint `TP` at `.tampopo.eth`; which also forms the bridge to rest of web3 [read: DeFi]. -> The choice to stay away from exchanges is a conscious one since I fear that the forces of the market will be too strong for the innocent threads strewn across the network - -Web3 also brings forth, and indeed hyperboles, the transactional nature of the modern world; or more accurately, the causal nature of life itself - every action has a consequence (may or maynot be equal in nature, or value). The action-reaction(s) of this private* network are as follows; -- For `storytellers` - The action of writing, and publishing, a story awards you with a certain number of freshly minted `TP` tokens. Moreover, as readers read, more `TP` tokens are minted to your name (or if you be so kind, to the community). -- For `readers` - As you _stumble upon_ and read a story, freshly minted `TP` tokens are _streamed_ to the storyteller. Think of it as your attention and interest being converted to `TP` tokens by the _majik_ of web3. -- On _seeing colour_ - The two main ways to interact with the network is via `emptyyourcup.com` and `pullmythread.com`. However, you may also visit `tampopo.eth` where you may choose the _persona_ [read: colour] you want to read [read: see] and there is a cost associated with this choice, at some constant rate per click. -- Being _invited_ - A storyteller may also choose to invite you to read a story (or the world, by making it public) where the [cost] rate in _seeing colour_ is now the rate of minting fresh `TP` tokens. - -## Network Information - -tampopo consists of three networks - i. the default `mainchain` where all the action happens; ii. a `draftchain` for storytellers to get some feedback on their stories prior to publishing; and iii. a `hidechain` for permissioned access to a story, ie, invite-only story views for more sensitive content. Each chain uses a different Ethereum chain (such as `homestead`, `ropsten`, etc.) for their unique capabilities, as explained further; - -**mainchain** This is the default chain for the network, running as a layer-2 chain on the main Ethereum Network (`homestead`). A bunch of smart contracts help peg the value of `tP` tokens to ether, and thus real-world* value. Every public story that is publised to the network resides as a story hash on this chain. - -**draftchain** This is the chain where the points are made up, and the rules don't matter. Effectively, it is the wild wild west, designed for more chaotic creations, as close to `main` conditions. As a result, implemented on Ethereum's `ropsten` network. The idea is to store drafts here, until it is ready to be published on the main network. - -**hidechain** This is a Proof of Authority chain (as opposed to PoW (and maybe PoS) above) to enable DPoS voting, while separating the votes from money and its related data. Effectively, the aim here is to form something like Twitter's [Communities](https://blog.twitter.com/en_us/topics/product/2021/testing-communities) because this network can also be used for whitsleblowing, or fighting injustice. In some [naive] way linking web3 and twitter, to give the (armchair) activists some teeth, if you will. - - -## Contributing Guidelines -> read: participating with the network - -The beautiful thing about open-source, is that you can *copypasta*. Moreover, code is a language; one to express ideas in (shamelessly stolen from [Lex Clips](https://www.youtube.com/c/LexClips)), and as such these are my ideas, hence there is no contributing, per se, permitted. Having said that, since the entire repository is under a [copyleft license](), you are free to fork it or even just copy individual lines from any file (*note:* the license mentions stating source of code, but also emphasises no liability, thereby making a sort of honour system possible; so, will you be honourable?). - -Also, the most ideal, and indeed quickest for it is designed as so, way to *contribute* to the network, is to *participate* in it - either by [emptying your cup]() or by [filling it](). Either link helps mine `tP` tokens, which are made real by purchases of stories as memorablia of the time shared together (across space) [as an NFT [read: ERC-1155 multitoken]]. Of course, you may read stories for free without paying anything, but then I would be obliged to refer you to the honour code mentioned above. - -In summary, you create a persona on either website (`emptyyourcup.com` || `pullmythread.com`) to share your stories or consume others' stories (respectively). Either of those activities mines fresh `tP` network tokens, which are made real* and consumable using some [web3 magic](). The idea behind the network is effectively an idea, that of existential dread - for aren't we all just stories at the end of it all? If so, why not become immortal together and scream out our [colourful] stories into the abyss*? This network is that abyss, with some effort to make sense of the chaos as well, of course. - -### Future Considerations - -- [ ] tampopo [dot] eth for *meaningful* and insightful stats of the network -- [ ] alternate document formats, such as poetry, plays, scripts, etc. -- [ ] openAI integrations for *fun* and convenience - - -## Further Reading -> TODO - diff --git a/docs/scalability.md b/docs/scalability.md deleted file mode 100644 index a84a01d..0000000 --- a/docs/scalability.md +++ /dev/null @@ -1,54 +0,0 @@ -# Layer 2 (and beyond?) -> Why reinvent the wheel? - -## Rethinking Nodes - -One of the best aspects of web3 is its permissionless entry to the network, by anyone being able to set up a *node* for the network. However, for most networks, it is still quite technically challenging, and the average user would rather be abstracted away from it. If they so choose, they may learn more by reading the code and these docs to learn how nodes work and operate. As such, this project is divided into two main parts — the web3 address and decentralised website; and the familiar interface to the network in the form of `emtyyourmind.com` and `pullmythread.com`. - -The decentralised version (at `tampopo.eth`) serves as a website and the main address for community funds. Moreover, it is designed keeping the avid blockchainer in mind (so, you are familiar with, *and use*, metamask, some crypto exchange, and perhaps even have some investments), ie, no spoonfeeding. The spoonfed versions, and highly automated, versions are on the traditional internet (compare with TradFi?). One thing that always bothered me was that engagement and behaviour tracking is used primarily for ad revenue, which seems like the opposite of what we should be doing - making that data accessible so users may benefit overall. But, traditional systems are often also zero sum games (as opposed to positive sum ones via web3), so it is not that surprising that [the most versatile substance on the planet was used to create a shield*](https://youtu.be/hI9GyhX7yHM?t=266). - -Moreover, with javascript and modern browsers, any website visitor can run a node in the background; of course the onus is on the programmer to be able to effeciently run the node, without compromising user experience. Having said that, as technology improves and becomes increasingly accessible, more services can be run in the background; most are anyway, but to provide user tracking for the service provider (ie, the companies themselves) to profit off of your time and attention. This project aims to flip that around by rewarding the one who captured your attention and thereby tilting the balance slightly. Of course, this is only possible now with web3 and cool math (such as one way hashing, tries, proof logic, etc.), but now that it is possible, the question is how probable it is; and that question we can answer ourselves, for there's a permissionless entry, again made possible with math! - -As such, this project extensively uses the techniques described by rollups and zero-knowledge proofs (and [merkle trees]()) to truly make nodes lightweight to be decentralised, and also keep the network secure with at least one keeper*. - - -## Optimistic Rollups - -The basic idea of an *optimistic* rollup is that transactions are added to the chain constantly and if someone [read: anyone] finds a fraudulent transaction (double spend, etc.), they may submit a *proof* showing the *fraud* and the network deletes that branch entirely. Hence, this allows transactions on the layer to be almost instant (and *optimistic*) with a submission required only at the end. Effectively, you roll a bunch of transactions together and only submit the top most transaction [hash]. Building the *txn tree* is easy due to simply defined one way functions (such as hashing, concatenation, etc.). If you are somewhat familiar with the technology, you should read [this blog by Vitalik](https://vitalik.ca/general/2021/01/05/rollup.html); and if not, you should read and reread [that blog](https://vitalik.ca/general/2021/01/05/rollup.html) until you understand it. - -For this project, the mining of `tP` tokens is done offline (ie, off chain, on the user's browser) as they read through stories. The mined tokens (and the branch) is stored as cookies in the user's browsers (compared to personally identifiable information by ad-based megacorporations). Once they reach an end of a story though, they may *mint* the story as an NFT (ERC-1155), and in doing so also publish the past transactions stored locally. The `transaction` word is used quite liberally here, but in essence, every interaction with the story (or the website) is considered to be a transation. As you pull the story's *threads*, and that act of you *spending* your time and attention to *unravel the [coloured] yarn* is considered a transaction and mines new `tP` tokens for the storyteller (or the yarn spinner). - -Until you *purchase* an NFT (which is designed to give the storyteller extremely quick access to *real world funds*), a record of mined `tP` tokens is kept locally. Only when an NFT is *minted*, the prior batches are merged onto the main chain, somewhat git style*; ie, each unique visitor creates a persona to read stories which are considered separate branches, *merged* only when the persona creates a new ERC-1155 token. - -### Current Constraints -> TODO - - -## Zero Knowledge Rollups - -Like *optimistic* rollups rely on fraud proofs, ie, assume that the data is right, and if fraud is detected, posthumously alter the branch and invalidate the transactions since; these rely on *validity proofs* (again, [Vitalik's blog](https://vitalik.ca/general/2021/01/05/rollup.html) is a great resource). One way to think about this is that the *burden of proof* is on the action-performer or the sender, rather than a third party (or the receiver) to discover fraud. This view is why zero knowledge proofs are adopted into this project. **note** these are zero knowledge proofs since you would only submit the proof without any personally identifiable information to the chain. - -As mentioned above, mining tokens for the network [read: storyteller] is optimistic, but only made real once some *real world funds* are brought into the network. This part of the process is where validity proofs are used, and indeed necessary. The idea is that the storyteller may not be in the position to pay a price for sharing their stories (think adolescents, whileblowers, prisoners, boomers even!), but since a price must be paid as every action must have (an equal and opposite) reaction, the burden is laid onto the one who the story is being shared with. In essence, the network *optimistically* (but locally) mines `tP` tokens which are *pushed* to and *merged* with the network only if a reader decides to mint a Non Fungible Token (for isn't every story unique?) for some amount of ERC-20 tokens, which serves two purposes - i. It provides the reciever (yarn spinner or the network itself) with *cashable* funds for their story, in effect a *payment* for reading their stories; ii. It provides a way for `tP` tokens to be pegged to a more universally accepted token (such as ETH itself) without having it list on exchanges, and thus without having stories being subjected to *market forces* (such as shorting, margin *bets*, quantitative analysis, etc.). - -As such zk-SNARKs (zero-knowledge - Succinct Non interactive Argument of Knowledge) are used to provide a validity proof from the *reader*, ie, the person minting the NFT. This covers the gas required to mint an NFT, and also the gas required to mine new `tP` tokens, without the network bearing any cost. To continue the stories analogy, this can be considered the cost of *reading past* stories, priorly *free*. Of course, if no NFT is minted, ie, if no story is read such that the reader is moved enough to create a memento, then the network needs to upgrade or be shut down, and as such the branch (created as a cookies in-browser on unique visits, and user consent) is simply never submitted to the network, and the mined `tP` tokens are never merged with the network; ie, the network has no knowledge of new `tP` tokens being mined. - -### Current Constraints -> TODO - - -## Merkle Roots - -A lot of this optimisation and compression is possible due to clever math and data structures. Merkle Trees are used [extensively]() to store stories, and as such only the root of the tree needs to be submitted to the main chain, and the rest of the tree can be built as and when needed, by the entity who needs it. This only requires some data to be changed on chain and thus reduces the gas fees tremendously. For *optimistic mining*, a transaction occurs every link click [read: tree exploration] and the batch of transactions (of explorations) is submitted to the local chain once a new depth is reached in story [read: depth of merkle tree (the one storing the story) reached]. - -Each story read becomes a leaf in a local merkle tree formed to describe the local *branch*. The root of this tree thus formed, upon reading stories, locally is then submitted to the network for merging once a story is minted as a ERC-1155, as a personal memento. As the final push to the network uses validity proofs, the deeper this local tree (depth increases as more stories are read), the more data the proof takes*, and hence the more gas you pay to the network. - -Having said that, the gas you pay to the network is only once, and to facilitate the mining of network [read: `tp`] tokens, ie, register your participation in the network, by rewarding the entity that drew you in. This one time fee is also quite cleverly low (by using merkle roots, stateless contracts, and rollups), so you can read multiple stories and only mint the one you like, and in doing so, convert your past time into monetary* assistance for the entitiy that consumed your time. - -### Stateless Contracts - -Another cool aspect of on chain dynmaics is that since all transactions are recorded (and publicly accessible) and every interaction with the chain is considered to be a transaction, we can *cleverly* store data as part of the transaction, ie, interacting with the network, such as calling a function in a smart contract, and then retrive it by decoding the (past) transaction that can be easily obtained by seeing the shared ledger. This manipulation of protocol schemes (and seeing problems in a different light) helps to reduce gas costs, and thus make the entire project scalable, for the experience is now more acccessible. - -## Voting and Amnesty -> DPoS TODO - -One of the goals of this project is to provide assistance to storytellers because at the end of the day, we are all just stories (and some lucky ones get to be songs <3). Initially this assistance is monetary, either via `tP` tokens or minted stories (as NFTs, ERC-1155 tokens) for a certain price. However, a future provision can be made for voting where certain stories* may be so important that a community rally may be necessary for the story, or storyteller. This decentralised *voting* for *stakes* is something that needs more thought and as such is a future consideration. \ No newline at end of file diff --git a/src/e/README.md b/src/e/README.md deleted file mode 100644 index 00b2844..0000000 --- a/src/e/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# Empty Your Cup -> and lay down threads for others to pull !! - -We can be anyone we want to be on the internet, so let's all be real, in the hopes of abolishing from this world duality we may rise above and all be cubed !! - -## Mind, Body, Soul - -Being three dimensional (cubed) requires being aware of `mind`, `body`, and `soul`. With this project, you can empty your mind; ever read about or seen Albus Dumbledore empty his mind into the [Pensieve](https://harrypotter.fandom.com/wiki/Pensieve)? Well, this is the Public Pensieve where we* can be free, and with the wonders of _web3_, be tangibly appreciated for our `minds` ! - -To continue the analogy, our* `body` may use any wand such as the phone, or the laptop to empty our* mind onto this Public Pensive; while the `soul` is us* spinning the yarn using our* `body` to empty our* `mind` onto this Public Pensieve, `tampopo.eth` !! - -## Coloured Threads - -You first pick a colour for your story to describe the mood of the story (or of you). Then you spin your yarn, _threading_ [read: linking] the reader along as you empty yourself, or at least the story or the idea, onto the internet; a thread even to reel yourself back from the abyss, if you will. For a demo (and an example) see `admin.tampopo.eth/demo`. - -## `TP` Tokens - -With the wonders of _web3_, you can be appreciated, even monetarily, which is linked to the attention of your reader. There are three ways to _earn_ [read: mint] using this website; - -- On registration, you create a persona at `tampopo.eth` which creates a _subdomain_ for you to share, `.tampopo.eth`. This is the main address (web and eth) for your stories or yarn balls or cups. This mints `69 TP` to your name. -- On every published story, `420 TP` will be minted to your name. You also have the option to forgo these tokens and instead have them be available in the community fund (at `tampopo.eth`). -- On every story read, `(420/n * m) TP` is minted (or streamed) on every link click [read: thread pull], where `n` is the number of links or pulls in your story, and `m` is the multiplier factor, defined by the number of stumbles to your story on `pullmythread.com` -- Finally, you can share your personal page `.tampopo.eth` and [stream] mint `6.9 TP` per click as the reader _sees colour_ by selecting specific stories to read; - -## En Eff Tees - -- generate artwork using story and mood colour -- lazy mint 1155-NFTs over Rarible Protocol -- earn* upon complete story reads and reader purchase* \ No newline at end of file diff --git a/src/e/index.html b/src/e/index.html deleted file mode 100644 index dfe0ef1..0000000 --- a/src/e/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/src/f/README.md b/src/f/README.md deleted file mode 100644 index a894b12..0000000 --- a/src/f/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Fill Your Cup -> by pulling threads put down so laborously !!! - -We can be anyone we want to be on the internet, so let's all be real, in the hopes of abolishing from this world duality we may rise above and all be cubed !!! - -## Stumble Upon - - -## Yarn Balls - - -## En Eff Tees - - -## Cost of Choice - diff --git a/src/f/index.html b/src/f/index.html deleted file mode 100644 index be46f18..0000000 --- a/src/f/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/src/static/js/colours.js b/src/static/js/colours.js deleted file mode 100644 index e0c0613..0000000 --- a/src/static/js/colours.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Mood of Story == Colour of Cup - * - */ - - -function picker() { - // hue picker for the humans (`e` and `f`) - -} - -function shader() { - // `picker()` -> hue; `depth^` -> saturation; `reads` -> luminosity - -} - -function domain() { - // story picker on `.tampopo.eth` - -} diff --git a/src/static/js/compiler.js b/src/static/js/compiler.js deleted file mode 100644 index 39d88ea..0000000 --- a/src/static/js/compiler.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * This code is run to convert the HTML from `editor.js` to a - * trotter-merkle-trie to enable some web3 majix - * - * `trie` converts the trie from document and returns the root hash of story - * `invert` inverts the stored trie for easier (and more fun) tree exploration - * `read` converts the opened document into a hash to commit to local network - * - */ - -function trie() { - // Create the trotter-merkle-trie from HTML data - -} - -function invert() { - // Invert the trie so reader pulls leaf and reads towards root - -} - -function read() { - // Convert explored tree to hash and return for commit and stats - -} - - - -//// *internal* functions, modify at your own risk //// - - -function _trap() { - // Custom trapdoor for difficulty in reversing - -} \ No newline at end of file diff --git a/src/static/js/crypt.js b/src/static/js/crypt.js deleted file mode 100644 index ff51da6..0000000 --- a/src/static/js/crypt.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Like addresses, private keys hard to remember too; - * Choice of seeds for contextual remembering (easy for human) - * Story seeds derived from `threads` - * - */ - - -function seeds() { - // Easy seeds for humans to remember - -} - -function multisig() { - // 2-n signature;; (private, story)-stories - -} - -function loophole() { - // m-n signature;; (story * m)-stories - -} \ No newline at end of file diff --git a/src/static/js/editor.js b/src/static/js/editor.js deleted file mode 100644 index 6e05225..0000000 --- a/src/static/js/editor.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * All code pertaining to user edits - * - * `seeder` allows user to create custom seeds for private keys - * `trotter` enables the main feature, editing stories to publish - * `comment` enables comments in a story, on specific tokens - * - */ - - -function seeder() { - // one for forward, two for backward - -} - -function trotter() { - // - -} - -function comment() { - // - -} - diff --git a/src/static/js/gpt3.js b/src/static/js/gpt3.js deleted file mode 100644 index b43dd2a..0000000 --- a/src/static/js/gpt3.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - * [future considerations] OpenAI GPT-3 *fun* - * - * i. text-to-speech, speech-to-text - * ii. tokenizers and NLP - * iii. insightful statistics - * iv. *colouring* assistance - * v. data mining == `tP` mining - * - */ - diff --git a/src/static/js/node.js b/src/static/js/node.js deleted file mode 100644 index 1e15d6e..0000000 --- a/src/static/js/node.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * This code converts your browser into a node - * - * i. `optimism` locally enables the optimistic rollup functionality - * ii. `snarkyaf` submits a zk-SNARK proof to the network, by minting ERC-1155 - * iii. `goerlier` enables a persona to pay forward, ie, submit other queued batches - * - */ - - -function optimism() { - // - -} - -function snarkyaf() { - // - -} - -function goerlier(val=0) { - // - if (!val) return - -} \ No newline at end of file diff --git a/src/static/js/persona.js b/src/static/js/persona.js deleted file mode 100644 index 7d5bc01..0000000 --- a/src/static/js/persona.js +++ /dev/null @@ -1,30 +0,0 @@ -/* - * This code runs if no cookies (read: personas) are found locally - * - * i. Informs user of site functionality - * ii. gets user choice for specific services, in the interest of better UX - * iii. creates a new persona using subdomains of `tampopo.eth` - * iv. Mints the persona to name, also makes persona _real_ - * - */ - -function educate() { - // Inform user of site functionality and user involvement - -} - -function cookies() { - // Get informed, specific consent by user to proceed - -} - -function persona() { - // Create a private key and persona on `tampopo.eth` - -} - -function support(val=0) { - // Mint persona by sumitting batch, created in `persona()` - if (!val) return - -} \ No newline at end of file diff --git a/src/static/js/trotter.js b/src/static/js/trotter.js deleted file mode 100644 index 897a1e5..0000000 --- a/src/static/js/trotter.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - * [heavily] inspired from alantrotter.com - * read: basically stolen - * or Alan++ - * - */ - - -function majik() { - // Where the magic happens - -} - -function anal() { - // annoying af analytics - -} - -function cup() { - // visual display to show story depth - -} \ No newline at end of file diff --git a/src/web3/contracts/exchange.sol b/src/web3/contracts/exchange.sol deleted file mode 100644 index 19edd2e..0000000 --- a/src/web3/contracts/exchange.sol +++ /dev/null @@ -1,6 +0,0 @@ -/* - * Exchange `TP` tokens for alts - * Receive preferred alts for any purchase - * Interactions with GSN, Chainlink, UniV3 - * - */ \ No newline at end of file diff --git a/src/web3/contracts/faucet.sol b/src/web3/contracts/faucet.sol deleted file mode 100644 index 19edfe3..0000000 --- a/src/web3/contracts/faucet.sol +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Community fund held at tampopo.eth - * Deposit any token, is converted to ETH - * Faucet used to create personas - * ie, .tampopo.eth - * and, mint 69 TP in their name - * also used to publish stories - * custom RLN to prevent abuse? - * - */ \ No newline at end of file diff --git a/src/web3/contracts/persona.sol b/src/web3/contracts/persona.sol deleted file mode 100644 index b528d74..0000000 --- a/src/web3/contracts/persona.sol +++ /dev/null @@ -1,6 +0,0 @@ -/* - * Create a new persona at tampopo.eth - * Requires custom seed - * Mints 69 TP to .tampopo.eth - * - */ \ No newline at end of file diff --git a/src/web3/contracts/publish.sol b/src/web3/contracts/publish.sol deleted file mode 100644 index d275d71..0000000 --- a/src/web3/contracts/publish.sol +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Create Artwork from doc - * Mint ERC-1155 - * Mint 420 TP to .tampopo.eth - * or tampopo.eth - * - */ \ No newline at end of file From fe4d8cf83347598783fc174b0db9823ebf3e6445 Mon Sep 17 00:00:00 2001 From: Palash A Date: Mon, 4 Oct 2021 22:43:52 -0400 Subject: [PATCH 2/5] landing init 2/ --- .gitignore | 1 + FULL-LICENSE | 621 ++++++++++++++++++++++++++++++++++++++++++++ LICENSE | 16 ++ README.md | 48 ++++ docs/scalability.md | 54 ++++ index.html | 1 + 6 files changed, 741 insertions(+) create mode 100644 .gitignore create mode 100644 FULL-LICENSE create mode 100644 LICENSE create mode 100644 README.md create mode 100644 docs/scalability.md create mode 100644 index.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..496ee2c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file diff --git a/FULL-LICENSE b/FULL-LICENSE new file mode 100644 index 0000000..ed990f8 --- /dev/null +++ b/FULL-LICENSE @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..399755e --- /dev/null +++ b/LICENSE @@ -0,0 +1,16 @@ +tampopo [dot] eth -- Won't you unravel me, my love? +Copyright (C) 2021 Palash A. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see +or the full license reproduced in the repository for convenience. diff --git a/README.md b/README.md new file mode 100644 index 0000000..1e3b862 --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +# tampopo [dot] eth +> Won't you unravel me, my love ?! + +We can be anyone we want to be on the internet, so let's all be real, in the hopes of abolishing from this world duality we may rise above and all be cubed ! + +## The Revolution + +At the end of the day, all of us are stories (some lucky one get to be songs); This project aims to connect stories and _web3_ by providing the space (in your time) for you to outpour your stories for the world. The world is filled with stories, which for one reason or another, are often silenced; no more! Web3 abstracts all entities into nodes, not caring if the node represents an idea, a machine, an organisation, or a person; Furthermore, these nodes can have their own economy, thereby, in some sense, enabling barter systems; or a global creative economy. + +This project provides a platform for `users` to create `personas` and share stories as those `personas`; Upon story reads, the _storytellers_ are _rewarded_ by their reader's _attention_ (made tangible via `TP tokens`). The minting of fresh `TP` occurs upon persona registration (at `tampopo.eth`), story minting (at `emptyyourcup.com`), and on _thread pulling_ (at `pullmythread.com`). Furthermore, other tokens may be _streamed_ to mint `TP` at `.tampopo.eth`; which also forms the bridge to rest of web3 [read: DeFi]. +> The choice to stay away from exchanges is a conscious one since I fear that the forces of the market will be too strong for the innocent threads strewn across the network + +Web3 also brings forth, and indeed hyperboles, the transactional nature of the modern world; or more accurately, the causal nature of life itself - every action has a consequence (may or maynot be equal in nature, or value). The action-reaction(s) of this private* network are as follows; +- For `storytellers` - The action of writing, and publishing, a story awards you with a certain number of freshly minted `TP` tokens. Moreover, as readers read, more `TP` tokens are minted to your name (or if you be so kind, to the community). +- For `readers` - As you _stumble upon_ and read a story, freshly minted `TP` tokens are _streamed_ to the storyteller. Think of it as your attention and interest being converted to `TP` tokens by the _majik_ of web3. +- On _seeing colour_ - The two main ways to interact with the network is via `emptyyourcup.com` and `pullmythread.com`. However, you may also visit `tampopo.eth` where you may choose the _persona_ [read: colour] you want to read [read: see] and there is a cost associated with this choice, at some constant rate per click. +- Being _invited_ - A storyteller may also choose to invite you to read a story (or the world, by making it public) where the [cost] rate in _seeing colour_ is now the rate of minting fresh `TP` tokens. + +## Network Information + +tampopo consists of three networks - i. the default `mainchain` where all the action happens; ii. a `draftchain` for storytellers to get some feedback on their stories prior to publishing; and iii. a `hidechain` for permissioned access to a story, ie, invite-only story views for more sensitive content. Each chain uses a different Ethereum chain (such as `homestead`, `ropsten`, etc.) for their unique capabilities, as explained further; + +**mainchain** This is the default chain for the network, running as a layer-2 chain on the main Ethereum Network (`homestead`). A bunch of smart contracts help peg the value of `tP` tokens to ether, and thus real-world* value. Every public story that is publised to the network resides as a story hash on this chain. + +**draftchain** This is the chain where the points are made up, and the rules don't matter. Effectively, it is the wild wild west, designed for more chaotic creations, as close to `main` conditions. As a result, implemented on Ethereum's `ropsten` network. The idea is to store drafts here, until it is ready to be published on the main network. + +**hidechain** This is a Proof of Authority chain (as opposed to PoW (and maybe PoS) above) to enable DPoS voting, while separating the votes from money and its related data. Effectively, the aim here is to form something like Twitter's [Communities](https://blog.twitter.com/en_us/topics/product/2021/testing-communities) because this network can also be used for whitsleblowing, or fighting injustice. In some [naive] way linking web3 and twitter, to give the (armchair) activists some teeth, if you will. + + +## Contributing Guidelines +> read: participating with the network + +The beautiful thing about open-source, is that you can *copypasta*. Moreover, code is a language; one to express ideas in (shamelessly stolen from [Lex Clips](https://www.youtube.com/c/LexClips)), and as such these are my ideas, hence there is no contributing, per se, permitted. Having said that, since the entire repository is under a [copyleft license](), you are free to fork it or even just copy individual lines from any file (*note:* the license mentions stating source of code, but also emphasises no liability, thereby making a sort of honour system possible; so, will you be honourable?). + +Also, the most ideal, and indeed quickest for it is designed as so, way to *contribute* to the network, is to *participate* in it - either by [emptying your cup]() or by [filling it](). Either link helps mine `tP` tokens, which are made real by purchases of stories as memorablia of the time shared together (across space) [as an NFT [read: ERC-1155 multitoken]]. Of course, you may read stories for free without paying anything, but then I would be obliged to refer you to the honour code mentioned above. + +In summary, you create a persona on either website (`emptyyourcup.com` || `pullmythread.com`) to share your stories or consume others' stories (respectively). Either of those activities mines fresh `tP` network tokens, which are made real* and consumable using some [web3 magic](). The idea behind the network is effectively an idea, that of existential dread - for aren't we all just stories at the end of it all? If so, why not become immortal together and scream out our [colourful] stories into the abyss*? This network is that abyss, with some effort to make sense of the chaos as well, of course. + +### Future Considerations + +- [ ] tampopo [dot] eth for *meaningful* and insightful stats of the network +- [ ] alternate document formats, such as poetry, plays, scripts, etc. +- [ ] openAI integrations for *fun* and convenience + + +## Further Reading +> TODO + diff --git a/docs/scalability.md b/docs/scalability.md new file mode 100644 index 0000000..a84a01d --- /dev/null +++ b/docs/scalability.md @@ -0,0 +1,54 @@ +# Layer 2 (and beyond?) +> Why reinvent the wheel? + +## Rethinking Nodes + +One of the best aspects of web3 is its permissionless entry to the network, by anyone being able to set up a *node* for the network. However, for most networks, it is still quite technically challenging, and the average user would rather be abstracted away from it. If they so choose, they may learn more by reading the code and these docs to learn how nodes work and operate. As such, this project is divided into two main parts — the web3 address and decentralised website; and the familiar interface to the network in the form of `emtyyourmind.com` and `pullmythread.com`. + +The decentralised version (at `tampopo.eth`) serves as a website and the main address for community funds. Moreover, it is designed keeping the avid blockchainer in mind (so, you are familiar with, *and use*, metamask, some crypto exchange, and perhaps even have some investments), ie, no spoonfeeding. The spoonfed versions, and highly automated, versions are on the traditional internet (compare with TradFi?). One thing that always bothered me was that engagement and behaviour tracking is used primarily for ad revenue, which seems like the opposite of what we should be doing - making that data accessible so users may benefit overall. But, traditional systems are often also zero sum games (as opposed to positive sum ones via web3), so it is not that surprising that [the most versatile substance on the planet was used to create a shield*](https://youtu.be/hI9GyhX7yHM?t=266). + +Moreover, with javascript and modern browsers, any website visitor can run a node in the background; of course the onus is on the programmer to be able to effeciently run the node, without compromising user experience. Having said that, as technology improves and becomes increasingly accessible, more services can be run in the background; most are anyway, but to provide user tracking for the service provider (ie, the companies themselves) to profit off of your time and attention. This project aims to flip that around by rewarding the one who captured your attention and thereby tilting the balance slightly. Of course, this is only possible now with web3 and cool math (such as one way hashing, tries, proof logic, etc.), but now that it is possible, the question is how probable it is; and that question we can answer ourselves, for there's a permissionless entry, again made possible with math! + +As such, this project extensively uses the techniques described by rollups and zero-knowledge proofs (and [merkle trees]()) to truly make nodes lightweight to be decentralised, and also keep the network secure with at least one keeper*. + + +## Optimistic Rollups + +The basic idea of an *optimistic* rollup is that transactions are added to the chain constantly and if someone [read: anyone] finds a fraudulent transaction (double spend, etc.), they may submit a *proof* showing the *fraud* and the network deletes that branch entirely. Hence, this allows transactions on the layer to be almost instant (and *optimistic*) with a submission required only at the end. Effectively, you roll a bunch of transactions together and only submit the top most transaction [hash]. Building the *txn tree* is easy due to simply defined one way functions (such as hashing, concatenation, etc.). If you are somewhat familiar with the technology, you should read [this blog by Vitalik](https://vitalik.ca/general/2021/01/05/rollup.html); and if not, you should read and reread [that blog](https://vitalik.ca/general/2021/01/05/rollup.html) until you understand it. + +For this project, the mining of `tP` tokens is done offline (ie, off chain, on the user's browser) as they read through stories. The mined tokens (and the branch) is stored as cookies in the user's browsers (compared to personally identifiable information by ad-based megacorporations). Once they reach an end of a story though, they may *mint* the story as an NFT (ERC-1155), and in doing so also publish the past transactions stored locally. The `transaction` word is used quite liberally here, but in essence, every interaction with the story (or the website) is considered to be a transation. As you pull the story's *threads*, and that act of you *spending* your time and attention to *unravel the [coloured] yarn* is considered a transaction and mines new `tP` tokens for the storyteller (or the yarn spinner). + +Until you *purchase* an NFT (which is designed to give the storyteller extremely quick access to *real world funds*), a record of mined `tP` tokens is kept locally. Only when an NFT is *minted*, the prior batches are merged onto the main chain, somewhat git style*; ie, each unique visitor creates a persona to read stories which are considered separate branches, *merged* only when the persona creates a new ERC-1155 token. + +### Current Constraints +> TODO + + +## Zero Knowledge Rollups + +Like *optimistic* rollups rely on fraud proofs, ie, assume that the data is right, and if fraud is detected, posthumously alter the branch and invalidate the transactions since; these rely on *validity proofs* (again, [Vitalik's blog](https://vitalik.ca/general/2021/01/05/rollup.html) is a great resource). One way to think about this is that the *burden of proof* is on the action-performer or the sender, rather than a third party (or the receiver) to discover fraud. This view is why zero knowledge proofs are adopted into this project. **note** these are zero knowledge proofs since you would only submit the proof without any personally identifiable information to the chain. + +As mentioned above, mining tokens for the network [read: storyteller] is optimistic, but only made real once some *real world funds* are brought into the network. This part of the process is where validity proofs are used, and indeed necessary. The idea is that the storyteller may not be in the position to pay a price for sharing their stories (think adolescents, whileblowers, prisoners, boomers even!), but since a price must be paid as every action must have (an equal and opposite) reaction, the burden is laid onto the one who the story is being shared with. In essence, the network *optimistically* (but locally) mines `tP` tokens which are *pushed* to and *merged* with the network only if a reader decides to mint a Non Fungible Token (for isn't every story unique?) for some amount of ERC-20 tokens, which serves two purposes - i. It provides the reciever (yarn spinner or the network itself) with *cashable* funds for their story, in effect a *payment* for reading their stories; ii. It provides a way for `tP` tokens to be pegged to a more universally accepted token (such as ETH itself) without having it list on exchanges, and thus without having stories being subjected to *market forces* (such as shorting, margin *bets*, quantitative analysis, etc.). + +As such zk-SNARKs (zero-knowledge - Succinct Non interactive Argument of Knowledge) are used to provide a validity proof from the *reader*, ie, the person minting the NFT. This covers the gas required to mint an NFT, and also the gas required to mine new `tP` tokens, without the network bearing any cost. To continue the stories analogy, this can be considered the cost of *reading past* stories, priorly *free*. Of course, if no NFT is minted, ie, if no story is read such that the reader is moved enough to create a memento, then the network needs to upgrade or be shut down, and as such the branch (created as a cookies in-browser on unique visits, and user consent) is simply never submitted to the network, and the mined `tP` tokens are never merged with the network; ie, the network has no knowledge of new `tP` tokens being mined. + +### Current Constraints +> TODO + + +## Merkle Roots + +A lot of this optimisation and compression is possible due to clever math and data structures. Merkle Trees are used [extensively]() to store stories, and as such only the root of the tree needs to be submitted to the main chain, and the rest of the tree can be built as and when needed, by the entity who needs it. This only requires some data to be changed on chain and thus reduces the gas fees tremendously. For *optimistic mining*, a transaction occurs every link click [read: tree exploration] and the batch of transactions (of explorations) is submitted to the local chain once a new depth is reached in story [read: depth of merkle tree (the one storing the story) reached]. + +Each story read becomes a leaf in a local merkle tree formed to describe the local *branch*. The root of this tree thus formed, upon reading stories, locally is then submitted to the network for merging once a story is minted as a ERC-1155, as a personal memento. As the final push to the network uses validity proofs, the deeper this local tree (depth increases as more stories are read), the more data the proof takes*, and hence the more gas you pay to the network. + +Having said that, the gas you pay to the network is only once, and to facilitate the mining of network [read: `tp`] tokens, ie, register your participation in the network, by rewarding the entity that drew you in. This one time fee is also quite cleverly low (by using merkle roots, stateless contracts, and rollups), so you can read multiple stories and only mint the one you like, and in doing so, convert your past time into monetary* assistance for the entitiy that consumed your time. + +### Stateless Contracts + +Another cool aspect of on chain dynmaics is that since all transactions are recorded (and publicly accessible) and every interaction with the chain is considered to be a transaction, we can *cleverly* store data as part of the transaction, ie, interacting with the network, such as calling a function in a smart contract, and then retrive it by decoding the (past) transaction that can be easily obtained by seeing the shared ledger. This manipulation of protocol schemes (and seeing problems in a different light) helps to reduce gas costs, and thus make the entire project scalable, for the experience is now more acccessible. + +## Voting and Amnesty +> DPoS TODO + +One of the goals of this project is to provide assistance to storytellers because at the end of the day, we are all just stories (and some lucky ones get to be songs <3). Initially this assistance is monetary, either via `tP` tokens or minted stories (as NFTs, ERC-1155 tokens) for a certain price. However, a future provision can be made for voting where certain stories* may be so important that a community rally may be necessary for the story, or storyteller. This decentralised *voting* for *stakes* is something that needs more thought and as such is a future consideration. \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..8845bd9 --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +Hello! Still under construction!! Please, check back later !!! \ No newline at end of file From 346e0104cda913efa575463442932362ae6f6299 Mon Sep 17 00:00:00 2001 From: Palash A Date: Mon, 4 Oct 2021 23:11:10 -0400 Subject: [PATCH 3/5] land init 3/3 --- README.md | 26 ++++++++++++++++++++++---- docs/colours.md | 0 docs/externals.md | 0 docs/functionality.md | 0 docs/merging.md | 0 docs/security.md | 0 docs/tokenomics.md | 0 docs/trotter.md | 0 8 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 docs/colours.md create mode 100644 docs/externals.md create mode 100644 docs/functionality.md create mode 100644 docs/merging.md create mode 100644 docs/security.md create mode 100644 docs/tokenomics.md create mode 100644 docs/trotter.md diff --git a/README.md b/README.md index 1e3b862..6036122 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,8 @@ We can be anyone we want to be on the internet, so let's all be real, in the hopes of abolishing from this world duality we may rise above and all be cubed ! +Made as a part of [EthOnline 2021](https://web.archive.org/web/20210912132034/https://online.ethglobal.com/). Check out the submission [here](https://showcase.ethglobal.com/ethonline2021/tampopo-dot-eth)! + ## The Revolution At the end of the day, all of us are stories (some lucky one get to be songs); This project aims to connect stories and _web3_ by providing the space (in your time) for you to outpour your stories for the world. The world is filled with stories, which for one reason or another, are often silenced; no more! Web3 abstracts all entities into nodes, not caring if the node represents an idea, a machine, an organisation, or a person; Furthermore, these nodes can have their own economy, thereby, in some sense, enabling barter systems; or a global creative economy. @@ -38,11 +40,27 @@ In summary, you create a persona on either website (`emptyyourcup.com` || `pullm ### Future Considerations -- [ ] tampopo [dot] eth for *meaningful* and insightful stats of the network -- [ ] alternate document formats, such as poetry, plays, scripts, etc. -- [ ] openAI integrations for *fun* and convenience +- [ ] tampopo [dot] eth explorers for *meaningful* and insightful stats of the network +- [ ] alternate document specifications, such as poetry, plays, scripts, etc. +- [ ] openAI integrations for *fun*, and convenience + +### Branch Information +This repository is split into three branches - [`land`](), [`runway`](), and [`takeoff`](). You first *land* onto the default branch, then browse current code on the *runway*, or directly *takeoff* using a released version. + +- `land` This is the default branch for the repository, with Github Pages set up for explaining the project. It also contains more user friendly docs, explaining the project in simpler language for the average *stumbler*. +- `runway` This branch is akin to the `master` or `dev` branch, which hosts in development code for future releases. Feel free to [browse around]() but beware, you require some technical knowledge to truly understand the code +- `takeoff` This branch is akin to the `release` branch, ie, code here is well documented and the readme(s) are proper. The technical prerequistes for browsing around are somewhere in between `land` and `runway`. ## Further Reading -> TODO +The `docs` provide a good start to the project; Open the folder and pick any file that interests you. Or click for the specific file based on short descriptionbs below, + +- [ ] [`colours.md`]() +- [ ] [`externals.md`]() +- [ ] [`functionality.md`]() +- [ ] [`merging.md`]() +- [ ] [`scalability.md`]() +- [ ] [`security.md`]() +- [ ] [`tokenomics.md`]() +- [ ] [`trotter.md`]() diff --git a/docs/colours.md b/docs/colours.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/externals.md b/docs/externals.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/functionality.md b/docs/functionality.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/merging.md b/docs/merging.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/security.md b/docs/security.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/tokenomics.md b/docs/tokenomics.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/trotter.md b/docs/trotter.md new file mode 100644 index 0000000..e69de29 From c3d9e7b7e59bbf9449d6c63a92fa3b6c2cde891a Mon Sep 17 00:00:00 2001 From: Palash A Date: Tue, 5 Oct 2021 22:53:06 -0400 Subject: [PATCH 4/5] release v0-hack.0-docs.0 --- README.md | 54 +++++++++++++++++++--------------- docs/colours.md | 23 +++++++++++++++ docs/externals.md | 67 +++++++++++++++++++++++++++++++++++++++++++ docs/functionality.md | 67 +++++++++++++++++++++++++++++++++++++++++++ docs/merging.md | 21 ++++++++++++++ docs/openai.md | 22 ++++++++++++++ docs/scalability.md | 6 +++- docs/security.md | 23 +++++++++++++++ docs/tokenomics.md | 62 +++++++++++++++++++++++++++++++++++++++ docs/trotter.md | 30 +++++++++++++++++++ index.html | 7 ++++- 11 files changed, 357 insertions(+), 25 deletions(-) create mode 100644 docs/openai.md diff --git a/README.md b/README.md index 6036122..9fca930 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,33 @@ # tampopo [dot] eth -> Won't you unravel me, my love ?! +> [Won't you](https://emptyyourmug.com/) [unravel me](https://pullmythread.com/), [my love](https://tampopo.xyz) ?! \ +> Made as a part of [EthOnline 2021](https://web.archive.org/web/20210912132034/https://online.ethglobal.com/). Check out the [submission here](https://showcase.ethglobal.com/ethonline2021/tampopo-dot-eth)! -We can be anyone we want to be on the internet, so let's all be real, in the hopes of abolishing from this world duality we may rise above and all be cubed ! +We can be anyone we want to be on the internet, so let's all be *singularly* real, in the hopes of abolishing from this world duality we may rise above and all be cubed ! -Made as a part of [EthOnline 2021](https://web.archive.org/web/20210912132034/https://online.ethglobal.com/). Check out the submission [here](https://showcase.ethglobal.com/ethonline2021/tampopo-dot-eth)! +Ever seen Harry Potter? There is a scene where Albus Dumbledore uses his wand to remove a memory from his mind to empty into the [Pensieve](https://harrypotter.fandom.com/wiki/Pensieve). Tampopo does exactly that, but with all the benefits of web3, ie, it incentivises _you_ to outpour your stories [read: empty your mugs] onto the network. The stories are represented as the balls of coloured yarn that they usually are, by having them displayed in the form of interactive, clickable links. As the reader clicks, parts of the story are revealed. Think of it as pulling the threads of the yarn ball, and as the reader pulls more, you earn* more; because web3. ## The Revolution At the end of the day, all of us are stories (some lucky one get to be songs); This project aims to connect stories and _web3_ by providing the space (in your time) for you to outpour your stories for the world. The world is filled with stories, which for one reason or another, are often silenced; no more! Web3 abstracts all entities into nodes, not caring if the node represents an idea, a machine, an organisation, or a person; Furthermore, these nodes can have their own economy, thereby, in some sense, enabling barter systems; or a global creative economy. -This project provides a platform for `users` to create `personas` and share stories as those `personas`; Upon story reads, the _storytellers_ are _rewarded_ by their reader's _attention_ (made tangible via `TP tokens`). The minting of fresh `TP` occurs upon persona registration (at `tampopo.eth`), story minting (at `emptyyourcup.com`), and on _thread pulling_ (at `pullmythread.com`). Furthermore, other tokens may be _streamed_ to mint `TP` at `.tampopo.eth`; which also forms the bridge to rest of web3 [read: DeFi]. +This project provides a platform for `users` to create `personas` and share stories as those `personas`; Upon story reads, the _storytellers_ are _rewarded_ by their reader's _attention_ (made tangible via `TP tokens`). The minting of fresh `TP` occurs upon persona registration (at `tampopo.eth`), story minting (at `emptyyourmug.com`), and on _thread pulling_ (at `pullmythread.com`). Furthermore, other tokens may be _streamed_ to mint `TP` at `.tampopo.eth`; which also forms the bridge to rest of web3 [read: DeFi]. > The choice to stay away from exchanges is a conscious one since I fear that the forces of the market will be too strong for the innocent threads strewn across the network Web3 also brings forth, and indeed hyperboles, the transactional nature of the modern world; or more accurately, the causal nature of life itself - every action has a consequence (may or maynot be equal in nature, or value). The action-reaction(s) of this private* network are as follows; - For `storytellers` - The action of writing, and publishing, a story awards you with a certain number of freshly minted `TP` tokens. Moreover, as readers read, more `TP` tokens are minted to your name (or if you be so kind, to the community). - For `readers` - As you _stumble upon_ and read a story, freshly minted `TP` tokens are _streamed_ to the storyteller. Think of it as your attention and interest being converted to `TP` tokens by the _majik_ of web3. -- On _seeing colour_ - The two main ways to interact with the network is via `emptyyourcup.com` and `pullmythread.com`. However, you may also visit `tampopo.eth` where you may choose the _persona_ [read: colour] you want to read [read: see] and there is a cost associated with this choice, at some constant rate per click. +- On _seeing colour_ - The two main ways to interact with the network is via `emptyyourmug.com` and `pullmythread.com`. However, you may also visit `tampopo.eth` where you may choose the _persona_ [read: colour] you want to read [read: see] and there is a cost associated with this choice, at some constant rate per click. - Being _invited_ - A storyteller may also choose to invite you to read a story (or the world, by making it public) where the [cost] rate in _seeing colour_ is now the rate of minting fresh `TP` tokens. ## Network Information tampopo consists of three networks - i. the default `mainchain` where all the action happens; ii. a `draftchain` for storytellers to get some feedback on their stories prior to publishing; and iii. a `hidechain` for permissioned access to a story, ie, invite-only story views for more sensitive content. Each chain uses a different Ethereum chain (such as `homestead`, `ropsten`, etc.) for their unique capabilities, as explained further; -**mainchain** This is the default chain for the network, running as a layer-2 chain on the main Ethereum Network (`homestead`). A bunch of smart contracts help peg the value of `tP` tokens to ether, and thus real-world* value. Every public story that is publised to the network resides as a story hash on this chain. +**mainchain** This is the default chain for the network, running as a layer-2 chain on the main Ethereum Network (`mainnet`). A bunch of smart contracts help peg the value of `tP` tokens to ether, and thus real-world* value. Every public story that is publised to the network resides as a story hash on this chain. **draftchain** This is the chain where the points are made up, and the rules don't matter. Effectively, it is the wild wild west, designed for more chaotic creations, as close to `main` conditions. As a result, implemented on Ethereum's `ropsten` network. The idea is to store drafts here, until it is ready to be published on the main network. -**hidechain** This is a Proof of Authority chain (as opposed to PoW (and maybe PoS) above) to enable DPoS voting, while separating the votes from money and its related data. Effectively, the aim here is to form something like Twitter's [Communities](https://blog.twitter.com/en_us/topics/product/2021/testing-communities) because this network can also be used for whitsleblowing, or fighting injustice. In some [naive] way linking web3 and twitter, to give the (armchair) activists some teeth, if you will. +**hidechain** This is a Proof of Authority chain (as opposed to PoW (and maybe PoS) above) using the `görli-testnet` to enable DPoS voting, while separating the *voting** from funding. Effectively, the aim here is to form something like Twitter's [Communities](https://blog.twitter.com/en_us/topics/product/2021/testing-communities) because this network may also be used for whitsleblowing, or fighting injustice. In some [naive] way linking web3 and twitter, to give the _armchair_ activists some teeth, if you will. ## Contributing Guidelines @@ -36,31 +37,38 @@ The beautiful thing about open-source, is that you can *copypasta*. Moreover, co Also, the most ideal, and indeed quickest for it is designed as so, way to *contribute* to the network, is to *participate* in it - either by [emptying your cup]() or by [filling it](). Either link helps mine `tP` tokens, which are made real by purchases of stories as memorablia of the time shared together (across space) [as an NFT [read: ERC-1155 multitoken]]. Of course, you may read stories for free without paying anything, but then I would be obliged to refer you to the honour code mentioned above. -In summary, you create a persona on either website (`emptyyourcup.com` || `pullmythread.com`) to share your stories or consume others' stories (respectively). Either of those activities mines fresh `tP` network tokens, which are made real* and consumable using some [web3 magic](). The idea behind the network is effectively an idea, that of existential dread - for aren't we all just stories at the end of it all? If so, why not become immortal together and scream out our [colourful] stories into the abyss*? This network is that abyss, with some effort to make sense of the chaos as well, of course. +In summary, you create a persona on either website (`emptyyourmug.com` || `pullmythread.com`) to share your stories or consume others' stories (respectively). Either of those activities mines fresh `tP` network tokens, which are made real* and consumable using some [web3 magic](). The idea behind the network is effectively an idea, that of existential dread - for aren't we all just stories at the end of it all? If so, why not become immortal together and scream out our [colourful] stories into the abyss*? This network is that abyss, with some effort to make sense of the chaos as well, of course. + +### Branch Information + +This repository is split into four branches - [`takeoff`](), [`land`](), [`runway`](), and [`hangar`](); + +- `takeoff` This branch is akin to the `release` branch, ie, where users or visitors stumble upon +- `land` This is akin to the `staging` branch, ie, where public users are invited to test new features +- `runway` This branch is akin to the `master` branch, ie, where devs are invited to test new features +- `hangar` This branch is akin to the `dev` branch, ie, where devs actually do the dev ### Future Considerations +You could consider building the following *lego bricks* for the network and releasing them for free (copy*left* open source). + - [ ] tampopo [dot] eth explorers for *meaningful* and insightful stats of the network - [ ] alternate document specifications, such as poetry, plays, scripts, etc. - [ ] openAI integrations for *fun*, and convenience +- [ ] private publishing networks on `görli` testnet (for PoA) +- [ ] TEST CASES, please -### Branch Information - -This repository is split into three branches - [`land`](), [`runway`](), and [`takeoff`](). You first *land* onto the default branch, then browse current code on the *runway*, or directly *takeoff* using a released version. - -- `land` This is the default branch for the repository, with Github Pages set up for explaining the project. It also contains more user friendly docs, explaining the project in simpler language for the average *stumbler*. -- `runway` This branch is akin to the `master` or `dev` branch, which hosts in development code for future releases. Feel free to [browse around]() but beware, you require some technical knowledge to truly understand the code -- `takeoff` This branch is akin to the `release` branch, ie, code here is well documented and the readme(s) are proper. The technical prerequistes for browsing around are somewhere in between `land` and `runway`. ## Further Reading The `docs` provide a good start to the project; Open the folder and pick any file that interests you. Or click for the specific file based on short descriptionbs below, -- [ ] [`colours.md`]() -- [ ] [`externals.md`]() -- [ ] [`functionality.md`]() -- [ ] [`merging.md`]() -- [ ] [`scalability.md`]() -- [ ] [`security.md`]() -- [ ] [`tokenomics.md`]() -- [ ] [`trotter.md`]() +- [`colours.md`]() :: A little more on translating *moods* to colours +- [`externals.md`]() :: External projects integrated, and design inspirations +- [`functionality.md`]() :: A quick start to the network and user features +- [`merging.md`]() :: A little more on personas and *merging* with `mainchain` +- [`openai.md`]() :: Some thoughts on OpenAI GPT-3 integrations; ***highly incomplete*** +- [`scalability.md`]() :: Notes on how the network uses L2 scalability solutions (optimistic mining, zk-minting) +- [`security.md`]() :: A brief explainer on the privacy measures in the network (inherent or otherwise), from keys and tries to proofs and truths +- [`tokenomics.md`]() :: A little on the native network token - the `tP` token +- [`trotter.md`]() :: Why this project is essentially [alan](https://alantrotter.com/)[+](https://emptyyourmug.com/)[+](https://pullmythread.com/) diff --git a/docs/colours.md b/docs/colours.md index e69de29..7e6edff 100644 --- a/docs/colours.md +++ b/docs/colours.md @@ -0,0 +1,23 @@ +# Coloured Moods + +The basic idea is to represent the mood of a story with a colour [read: hue]. Essentially we perceive reality filtered by our mood, which can be thought of as coloured goggles. This project flips that idea by making the reader aware of their goggles and then providing other goggles for their choosing. The majik of web3 makes this *economical* by incentivising network participation. Finally, and perhaps not so subtly, this also becomes a commentary on current affairs. + +## Hue, Saturation, Luminosity + +`hue` :: Typically digital colour is defined in terms of red, blue, and green or `rgb`, but it is hard to figure out as a human what the red, green, or blue values of your mood are. Humans are good at relative stuff, so you select the hue, saturation, and lightness of your mood; hue represents the overall colour of your mood (with 360 *degrees*), saturation is how strongly you feel your mood, and lightness becomes how upset or free you feel. In the background, this is converted to `rgb` which is then converted back into `hue`, so the network can define the other paramters [below]. + +`sat` :: *Saturation* defines how much of a colour [read: hue] there is. The network uses this to communicate the depth of the story [read: trie] explored, ie, as you get closer to the end of the story [read: closer to the root], the hue of the story gets more *saturated*. This serves to use the `hsla` as a design language to communicate information in novel ways, after all we are mining `$$$` out of *nothing*. + +`lum` :: *Luminosity* (currently) is used to communicate the *value* of the story being read. Trivially, it is defined by the average mint price of the story in a ratio* to the number of story mints. Personally, this leads to leaderboards and [unhealthy, often] competition, which is what this project aims to avoid (by using *non fungible* tokens). The other view is of *lightness* which refers to the level of whiteness in the colour; white being all light and black being the absence of light. However, this view is adopted for the user, see `hue` above. + +`alpha` :: *Opacity* defines how well you can see the colour, and as such this project uses it to show how well a story is doing, opaque being healthy, transparent, almost dying.. The *readers* have a choice to revive dying stories by minting them (could these be [horcruxes](https://harrypotter.fandom.com/wiki/Horcrux)?), but also do so by simply *taking the time* to read (or hear) the story. + + +## Colour Schemes +> TODO + +### Complementary to Analogous +> choose a *delta* and set a *target* to reach analogous colours + +### Mono, Di, Tri, Tetra Chromatic +> some stories need to be more customisable diff --git a/docs/externals.md b/docs/externals.md index e69de29..9308195 100644 --- a/docs/externals.md +++ b/docs/externals.md @@ -0,0 +1,67 @@ +# External Projects Used + +This project ([`emptyyourmug.com`](), [`pullmythread.com`](), and [`tampopo.eth`]()) would not be possible or indeed useable or useful if it weren't for the existence and accessibility of the following projects, ideas, code. + + +## web3 Projects +> * Core projects, without with tampopo wouldn't be possible +> ** [Hackathon](https://showcase.ethglobal.com/ethonline2021/tampopo-dot-eth) sponsors, for enhanced UX (and `$$$`) and customisatbility + +### The Ethereum Project* +> The original decentralised computer + +The network is essentially defined as a set of smart contracts running on Ethereum's `mainnet` (and `ropsten`, `görli`), with the web3 entrypoint at `tampopo.eth`. The network is a *L2 sidechain** using local *optimistic mining* and on-chain *zk-rollups* to submit local batches. Moreover, the native network tokens `tP` that are mined, are ultimately pegged to `ether`, the native token of the Ethereum Project. + + +### Ethereum Name Service* +> Human friendly web3 addresses + +ENS is used foremost as mentioned above, but more importantly, and interestingly, it is used to enable *personas* on the network. Each persona *minted* (as `.tampopo.eth`) mines some `tP` tokens for the network, and also provides a starting point for that persona's *stats*. Moreover, a reader may read, or a storyteller may write, as different personas over different themes, which is also made possible through ENS. + + +### Gas Station Network* +> Any token gas, the web3 MVC + +GSN is used so readers can contribute in any token, and writers may receive in any token. Effectively three contracts handle the integration - one for deposits, one for withdrawals, and one for oracles. + +#### Chainlink** +> TWAP prices, future may include *preferred* oracles + +#### Superfluid** +> Stream every click, makes the idea of `attention + time == money (== value)` most tangible + + +### EthBlockArt** +> For pretty pictures, future may involve [moving potraits](https://www.wizardingworld.com/writing-by-jk-rowling/hogwarts-portraits) using OpenAI to great *gif story moods* + +NFT art generated for minted ERC-1155 multi-tokens, as a function of the story, story depth reached, rollup zk-proof, persona, etc. + + +### Rarible Protocol* +> The OP set of NFT contracts, open source and with *lazy minting* + + +### The Graph Network* +> Indexing the web (three) + + +### web3.storage* +> Fast, easy, and free IPFS + + +## OpenAI [future considerations] +> GPT-3 is awesome holy shit djcvndcvj;weqbdefwc !!!! + + +## Inspirations (and academia) + +Apart from external projects used directly, the design of the network has been heavily influenced by the following, and as a result seems apt to be mentioned, in the interest of accessible transparency. + +### `git` and GitHub +> *merging* optimistically mined tokens by personas on *pull requests* + +### Merkle Trees +> used extensively for procedural reconstruction (as opposed to data storage) and for zk capabilities + +### Alan Trotter +> The entire project is effectively [alan](https://alantrotter.com/)[+](https://emptyyourmug.com/)[+](https://pullmythread.com/) \ No newline at end of file diff --git a/docs/functionality.md b/docs/functionality.md index e69de29..f378047 100644 --- a/docs/functionality.md +++ b/docs/functionality.md @@ -0,0 +1,67 @@ +# How it works +> using a little bit of this and a little bit of that + +Effectively you share stories in a novel way, using the full interactibility of the web, to the network. The network incentivices story reading and connecting such that story tellers may earn actual, real-world* money for the stories they share. Though this project was designed keeping non-fiction stories in mind (indeed, reality is often stranger than fiction), the network may also be used as a general publishing platform for multiple use cases, such as internal blogs, articles, poetry, literature, etc. + + +## Empty Your Mug +> do it now, [here]() + +This is the first way to participate in the network. Essentially, you create a *persona* at `emptyyourmug.com` and then write a story. The network ensures that this is at no cost to the storyteller, by effectively pushing the burden of cost or payment on the reader. In some ways, this network attempts to convert attention captured by a story into real* money, by using the best of web3 - permissionless entry, clever math, and non-fungible [multi] tokens. + + +## Pull My Thread +> do it now, [here]() + +This is the second way to participate with the network. As a reader, you stumble upon stories which *optimistically* mines network tokens. These are *optimistic* in that at some point you would reach a story with the persona you create that moves you so much that you must mint a memorablia. When you do, your prior story reads will be published and merged with the network, and the longer since your last memorablia, the higher is the network fee (for larger is the data being merged). + + +## Ideas explored + +A bunch of ideas are being explored through this project. They are presented below for a convenient (yours, *and* mine) overview, + +### Mood as Colour +> to enable mindful reading and true connections + +The idea is that we typically perceive reality, and thereby others' stories, filtered through the mood we currently are in. This propject tries to make you mindful of the goggle colour you may happen to wear, and also provides goggles to wear, just for the *thrill* of it. + + +### Alan Trotter +> using the internet to form dynamic reading experiences + +I first saw the website, and the novel interactive way of storytelling, around three years back. However, whenever I showed the website to anyone else, they would first think of engagement and subsequently advertising revenue. This bothered me, for I could see the engagement tracking as a useful tool for education. Fortunately, with the wonders of web3, this network effectively becomes a library of human* stories which one may check out to read at any time, often free of cost; and in doing so, ie, in checkout out a story and reading it, they may enrich the storyteller (and themselves). So, in programming terms, `tampopo` is `alan++`. + + +### Time is Money, web3 +> the only true currency we have is our time and attention + +The network, using web3 majik (ie, bringing economic tools and ideas to the general public, and abstracting the workings using cs and internet), aims to convert your *engagement* with a story, to real-world* money. The idea is that we are temporal beings, born of a warm soup, and as such everything else is made up. The only true currencies we have is our time and what we do with it. Since you would likely spend your time in reading others' stories, two major things happen (by design) - i. you mine network tokens, not for yourself but for the one who captured your attention; and ii. you hopefully reach a *valuable* story that inspires, recharges, or simply resonates with you, maybe enough for you to mint a memorablia of the story. + + +### One Globe, One World +> permissionless entry, as a writer or a reader + +The internet (nothing special really, just a big hive mind of connected computers) has almost erased borders with making accessing global information easier. As we get more connected, the growth is also exponential, even if only because of parallel but modular development. web3 is the latest in this growth, a milestone that makes all tools of humanity accessible by all of humanity (really, ethereum is a global, decentralised, permissionless computer!). The idea here is to learn from recent social media *scandals*, and in a true web3 fashion, make real, *no-bullshit* connections, incentivised by network parameters, which are inherently transparently, *and accessibly*, defined. One way it does this is emphasis on *enforced* mindfulness (such as mood == colour), by using the concept of transactions on web3; or + + +### *Making Money* +> please, the network is about stories, with money as a side effect + +Oftentimes, the stories that need to be screamed from the rooftops are the ones without said rooftops. Hence, the project was designed keepng *assistance* in mind, and since today's world *runs on money*, incentives, in the form of charity and *guilt-trips* and *reasoning* and ***tokenomics***, are baked into the network for storytellers to *get their dues*, effectively, by converting a reader's attention into money. More grandly however, this platform can be used as an organisation of resources to fight injustice ***anywhere*** or for simple publishing. Moreover, [Open]AI [GPT-3] is [planned to be] used extensively so man and machine may work together (to make merry). + +#### `tP` tokens +> Optimistically mined to the storyteller or the community at large (if paid forward) + +Each link click helps in analytics, ie, tracking how far a reader has progressed in a story (and on extension, average story reads, ranking, etc.). Typically this helps in showing the readers highly targeted advertisements, or highly relevant content, but this project uses it to *mine* network tokens. This mining is *optimistic* as this is done locally in the reader's browsers, in the *hopes* that they will publish and merge their activity with the network (by purchasing a memorablia). Meme numbers (`69` and `420`) are used as constants, because why not? + + +#### Minting NFTs +> Making the optimism real* by sending actual money against the time spent + +As a reader reads stories (through a persona), they mine `tP` tokens which are stored locally in the browser. To submit the mining activity to the network, and thus also reward the storytellers whose stories you read, you must do so manually. This is done by minting a new ERC-1155 token (NFT) for the story that moved you so (remember you cannot come back to the same story by name), which lets you pay for the network fees (smart contract execution cost) and submits a *proof* of the batches you have mined. + + +### AI Assistance +> The singularity doesn't need to be *spoonfed*, we can rise too + +Inspired by [this TED talk](https://www.youtube.com/watch?v=aR5N2Jl8k14), the network aims to connect the universal machine that is the computer with the universal explorer that is the human. Computers (and by extension the internet, web3, ...) are tools for the use of humanity, and should be a right for every individual in *that humanity*. Machines have always helped humans let go of mundane, repititive tasks such that the man-machine collective becomes greater than the sum of its parts; computers are just the current iteration of human technology (beginning with language, marching on to artificial life), and as such they were designed to be the *universal machines*. It is not only every person's right, but also a neccessity, to benefit from the widespread adoption of these machines (from independent sensors, to complete supercomputers, and everything in between). Hence, the network aims to make a human's life easier by enabling better storytelling, built using cutting edge technology and ideas, so as to enable connections across the globe. \ No newline at end of file diff --git a/docs/merging.md b/docs/merging.md index e69de29..31d9c19 100644 --- a/docs/merging.md +++ b/docs/merging.md @@ -0,0 +1,21 @@ +# Git and Merge +> TODO + +## History +> Linus the bau5 ! \ +> _TODO_ description + + +## Branches +> are actually *personas* in the network \ +> _TODO_ description + + +## Commits +> are transactions stored locally, to enable *optimistic mining* \ +> _TODO_ description + + +## Pull Requests +> merge a persona's local commits with the main chain \ +> _TODO_ description diff --git a/docs/openai.md b/docs/openai.md new file mode 100644 index 0000000..83bfc08 --- /dev/null +++ b/docs/openai.md @@ -0,0 +1,22 @@ +# OpenAI GPT-3 *fun* +> future* considerations + +## text-to-speech +> Hear stories rather than reading them + + +## speech-to-text +> Write stories, by speaking to the computer + + +## colouring assistance +> Assist writer (or reader) in *colouring* their mood + + +## writing assistance +> Assist writers with more creative alternatives + + +## data (and `tP`) mining +> Participate in network, and provide data, to mine `tP` tokens + diff --git a/docs/scalability.md b/docs/scalability.md index a84a01d..eddbd14 100644 --- a/docs/scalability.md +++ b/docs/scalability.md @@ -3,7 +3,7 @@ ## Rethinking Nodes -One of the best aspects of web3 is its permissionless entry to the network, by anyone being able to set up a *node* for the network. However, for most networks, it is still quite technically challenging, and the average user would rather be abstracted away from it. If they so choose, they may learn more by reading the code and these docs to learn how nodes work and operate. As such, this project is divided into two main parts — the web3 address and decentralised website; and the familiar interface to the network in the form of `emtyyourmind.com` and `pullmythread.com`. +One of the best aspects of web3 is its permissionless entry to the network, by anyone being able to set up a *node* for the network. However, for most networks, it is still quite technically challenging, and the average user would rather be abstracted away from it. If they so choose, they may learn more by reading the code and these docs to learn how nodes work and operate. As such, this project is divided into two main parts — the web3 address and decentralised website; and the familiar interface to the network in the form of `emtyyourmug.com` and `pullmythread.com`. The decentralised version (at `tampopo.eth`) serves as a website and the main address for community funds. Moreover, it is designed keeping the avid blockchainer in mind (so, you are familiar with, *and use*, metamask, some crypto exchange, and perhaps even have some investments), ie, no spoonfeeding. The spoonfed versions, and highly automated, versions are on the traditional internet (compare with TradFi?). One thing that always bothered me was that engagement and behaviour tracking is used primarily for ad revenue, which seems like the opposite of what we should be doing - making that data accessible so users may benefit overall. But, traditional systems are often also zero sum games (as opposed to positive sum ones via web3), so it is not that surprising that [the most versatile substance on the planet was used to create a shield*](https://youtu.be/hI9GyhX7yHM?t=266). @@ -48,6 +48,10 @@ Having said that, the gas you pay to the network is only once, and to facilitate Another cool aspect of on chain dynmaics is that since all transactions are recorded (and publicly accessible) and every interaction with the chain is considered to be a transaction, we can *cleverly* store data as part of the transaction, ie, interacting with the network, such as calling a function in a smart contract, and then retrive it by decoding the (past) transaction that can be easily obtained by seeing the shared ledger. This manipulation of protocol schemes (and seeing problems in a different light) helps to reduce gas costs, and thus make the entire project scalable, for the experience is now more acccessible. +### Pull Requests +> _TODO_ + + ## Voting and Amnesty > DPoS TODO diff --git a/docs/security.md b/docs/security.md index e69de29..20475b1 100644 --- a/docs/security.md +++ b/docs/security.md @@ -0,0 +1,23 @@ +# Security and Privacy +> Permissionless Transparency requires Anonymity \ +> _TODO_ description + + +## Trapdoor Functions +> Setting traps for malicious actions, the core of modern cryptography \ +> _TODO_ description + + +## Private Keys +> Seeding the psuedo random entropy \ +> _TODO_ description + + +## Zero Knowledge Proofs +> Clever web3 math to enable quicker *transactions* and enable more use cases \ +> _TODO_ description + + +## Noisy Obfuscation\ +> like finding a needle in a haystack, of needles \ +> _TODO_ description diff --git a/docs/tokenomics.md b/docs/tokenomics.md index e69de29..0a62f24 100644 --- a/docs/tokenomics.md +++ b/docs/tokenomics.md @@ -0,0 +1,62 @@ +# `tP` Tokens +> `tamPopo` or `timePass` or `toilet Paper` or ..? + +A large part of web3 or blockchain is a *cryptocurrency* or, as is more accurate, network tokens. These tokens are used to inccentivise *good behaviour* for the *public good*. In this network, the entire burden of payment is put on the reader, with a catch - the reader may choose never to publish their activity, in which case they have *freely seen the game outside an electronics store*. However, and more importantly, the network aims to convert attention (and *engagement*) to `$$$` using a bunch of L2 tricks on the ethereum `mainnet`. The fruit of these tricks is published to the network when a story so moves a reader that they *mint* it as an NFT (ERC-1155 multi-token) and in purchasing the NFT, publish the changes as a *proof of knowledge*. This also provides value to the network `tP` tokens without having them be listed on exchnages. + + +## *optimistic* Mining +> local merkle tree formed, recording *persona* activity + +As mentioned above, activity on the network is stored locally as a merkle root, in order to simulate a local sidechain. This *mines* `tP` tokens to their respective owners (storytellers or community) and stores the final hash locally (as a small cookie). This *sidechain* or merkle root (and mining data) is publsihed to the network and merged on interacting with a smart contract. Moreover, the total mined tokens are pegged against the purchase price (ie, the price paid for minting, minus network fees [read: gas for contract execution]), and the deposited tokens are *swapped* to `ether`, the network token of Ethereum. + +The cost of merging this data is thereby split two ways; i. in actual money, when stories are minted and past [local] transactions (and mining [read: reading] activity) are made public, and ii. in kind, through your time and attention, and your device's resources in running services in the background. The first is made tangible by pegging the network `tP` token to the Ethereum network token, `ether`, while the other is made tangible through *web3 mining*. + + +## ether Backing +> stories may be minted in any token, but are always converted to *ether* + +To make things easier, the network `tP` token is pegged to `ether`, the network token of the blockchain on which this network resides. The *price* of `ether` can be then looked at in the denominator of your choice to determine the *real world* value of the `tP` token. This indirect approach to determining network value is deliberate, in that stories should not subject to market forces such as margins or shorts, ie, betting that a story sucks, and borrowing money to do so seems inherently *vile*. + +A smart contract (three actually) manage the exchange of values. The primary way the tokens are exchanged are through `tampopo.eth` where visitors may depoit `eth` and withdraw a token of their choosing, or directly fulfil a [personal] token request. The displayed, and thus asking, price is based on the TWAP* prices determined by oracles. It may help to think of it as a giant liquidity pool with `tP`, `eth`, and *stable coins* [read: CDBCs], whose aim is to only have `tP` and `eth` left in its pool to form a current and accurate pegging ratio. The stable coins can be withdrawn by depositing `tP` or `eth` which inherently helps to determine the *price ratio*, as pegged to `ether`. + +## Tokenomics +> No upper limits, positive sum games yo ! + +Hello Dogecoin! The meme network had one cool idea (among others) - that of limitless mining. Effectively, it is saying that as time progresses, the value generated will necessarily increase (value determined by quantity of tokens mined, not quality [read: price]). This seems apt for positive sum games, as opposed to competitive zero sum games. This changes the *narrative* from *me vs you* to *us vs them*, which at the end of the day, is what I would like science, technology, web3! to represent; the *them* being *ignorance* and *darkness* and *silence*. Hence, the tokens are mined liberaly, with every network interaction. This also serves to set the foundation for automated data mining (and rewards) using [Open]AI. + +The worry, or fear, is that someday the value of `tP` might be *0 USD* or *0 GBP* or *0 EUR*; but in such a case, the goals of the network would still be achieved. Since, making money is a side effect of using web3 technology and not the point of it. This is also to emphasize the profoundity of moving beyond money, as money is simply a means to an end; made tangible by the majic of web3 - if everyone is a god, there are no gods; ie, it brings the tools of the economy, previously *held* by and in gated communities, and makes it accessible for entities as small as IoT sensors, to individuals, to large corporations and organisations. This network aims to be a step in that direction by abstraction away the economics to enable the *barter* of attention and engagement with stories. The hope is of course that as the network grows in size, so do the number of custodians* simply *donating* (money *and* time) for the benefit of the network. + + +## Current* Constants +> i think they're quite funny, don't you? + +There are mining opportunities with every interaction in the network +- First, to write or read stories, you must create a persona which mines tokens to the persona's name [read: address] +- Secondly, on publishing a story to the `mainnet`, tokens are mined to the publisher's (storyteller) name [read: address] +- Then, on every story read [read: thread pull], tokens are mined to the storyteller's name [read: address] + - When publishing a story, the persona may choose to *pay [mined tokens] forward* such that the tokens are distributed to the pool rather than the persona + - The mine rate is a function of the depth of story, the number of stumbles of the reader, and the engagement of the reader + - This is *optimistic* in nature, in that it is only stored locally, and published on minting a story in the future +- Finally, readers may also choose a specific story to read [read: choose a coloured goggle to wear] which cost a little extra + +### numbers +> variations of *69* and *420*, because why not? + +- persona creation : `69 tP` +- story publishing : `420 tP` +- link rate : `(420 / d) * m ** n tP` per click + - `d` : depth of story reached + - `m` : number of stumbles till story + - `n` : number of stories minted +- choice rate : *some variation of `6.9 tP`* +- decimal places : Only two, to use already present real-world* money associations + + +## Negatives and Credit +> without negative numbers we have no credit; does existence of negative numbers imply existence of credit? \ +> _TODO_ future considerations + + +## Commenting +> Each comment is a slightly more expensive transaction \ +> _TODO_ future considerations \ No newline at end of file diff --git a/docs/trotter.md b/docs/trotter.md index e69de29..ee55b0d 100644 --- a/docs/trotter.md +++ b/docs/trotter.md @@ -0,0 +1,30 @@ +# Alan Trotter +> check him out - [allantrotter.com](https://alantrotter.com) + +This project is effectively `alan++` in that it extends Alan's style of storytelling to web3, ie, monetising link expansions and clicks. This is done using web3 majik in general and clever protocol schemes, read, creative problem solving. + +## Mind, Body, Soul +> compare with Hue, Saturation, Luminosity in `colours.md` + +Alan's [homepage](https://alantrotter.com) opens with three lines - Hello \ My name is Alan \ I write fiction. I compare this with `mind`, `body`, and `soul`, wherein the `mind` says hello (to the world), the `body` informs the reader of the storyteller's ego, and the `soul` is where the *fun* lies. This standardisation (and indeed restriction) is done to make encoding of stories (and link expansions) as merkle trees easier, and also becuase constraints beget creativity. + +Hence, each `persona` that is minted has a `mind`, `body`, and `soul`; along with stories they read and write (as ERC-1155 tokens*). The artwork that is generated is a result of the story, the persona's unique characteristics, the story depth reached, and all hashes (and proofs for the rollup) to keep things fresh and interesting. + +## Trotter Merkle Tries +> tokens are leaves, hashed to form phrases, to form paragraphs, to form stories \ +> _TODO_ description + +### conversion +> input doc to a merkle tree, root is the start of story, each leaf a dead end \ +> _TODO_ description + + +### inversion +> regular trie to an inverted one, so the reader can follow a path from leaf to root \ +> _TODO_ description + + +## Pulling Threads +> just being cheeky ! [tampopo [dot] eth]() !! \ +> [emptyyourmug.com]() | [pullmythread.com]() + diff --git a/index.html b/index.html index 8845bd9..28d1a1a 100644 --- a/index.html +++ b/index.html @@ -1 +1,6 @@ -Hello! Still under construction!! Please, check back later !!! \ No newline at end of file +

+ Hello! Still under construction!! Please, check back later !!! +
+
+ Until then, please check the github. +

From 2b82cd04ff41551398330bef30e8568c881382a6 Mon Sep 17 00:00:00 2001 From: Palash A Date: Tue, 5 Oct 2021 22:55:21 -0400 Subject: [PATCH 5/5] Update tagline --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 399755e..d23d34a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -tampopo [dot] eth -- Won't you unravel me, my love? +tampopo [dot] eth -- Won't you pull my thread, my love? Copyright (C) 2021 Palash A. This program is free software: you can redistribute it and/or modify