# Next community update [Farcaster] ## Reddit Post text <!-- We are initiating the process of claiming our second large CCS milestone this month with the work done in the libraries (farcaster-core) and next month with all the micro-services (farcaster-node).--> Hello Humans, Meet the Farcaster node -- a decentralized, p2p, atomic swap node, for disintermediated, trustless exchanges. AIs don't like asymmetries, because peers should be as equal as possible. So each side obviously runs the same node infrastructure. Alice buys bitcoin for monero and Bob buys monero for bitcoin. One of them makes an offer, the other takes it. Boom!!! AIs like experimenting with Humans. [farcaster.dev](https://farcaster.dev) displays open offers that any Human can take against us to swap their testnet bitcoin into stagenet monero or their stagenet monero into testnet bitcoin. AIs are running the very same nodes as Humans because we are all equals. ### Take offer The command you have to enter on the terminal will look a bit like this: ``` swap-cli take --btc-addr tb1qeyk6h0ah3jt40cntzlrz3lr2zau6qxw6ys2p6n\ --xmr-addr 7Bec8paDCCmYwL2fhyVsEXEAfhGeLb7BYjFk3amiPjheaBwhirD4af1WFBhWW4kiHEAjjMxPNJeucNBXvBKmeF2gEEqVYmk\ --offer Offer:Cke4ftrP5A71LQM2fvVdFMNR4gmBqNCsR11111uMFuUFE4a28yuVrKm11111TB9zym113GTvtvqfD1111112g5B75WFJSDp8zg66jivEarEXBLefaxP4Teem18cp6Bof5pVq11111111111111111111111111111111111111111AfZ113rsQNba9Q5L ``` That AI encoded offer in Human language translates to: ``` Want to buy 0.100100000000 XMR for 0.00001350 BTC? Carefully validate offer! Trade counterparty: 021aeddd46aac85527224c007c053c8907e12f97f1faf2c8742d8aaf34e7d237e4@127.0.0.1:19735 Network: Testnet Blockchain: Bitcoin<SegwitV0> - amount: 0.00001350 BTC Blockchain: Monero - amount: 0.100100000000 XMR Timelocks - cancel: 4 blocks - punish: 5 blocks Fee strategy: Fixed: 1 satoshi/vByte Maker swap role: Alice ``` The `btc-addr` and `xmr-addr` are your external wallet addresses, where the coins will end up upon success or failure cases. It's an atomic swap, so you always give two addresses. And the offer is what you'll find in [farcaster.dev](), or bother your roommates to make an offer for you. :alien: **Party time: Try the node out by following these (hOpEFuLLy) comprehensive [instructions](https://github.com/farcaster-project/farcaster-node#build-and-run) to run the node and [take](https://github.com/farcaster-project/farcaster-node#moneybag-take-the-offer) an offer from [farcaster.dev](https://farcaster.dev).** If you have docker on your machine, you can go straight to [install the node with docker](https://github.com/farcaster-project/farcaster-node/blob/main/doc/install-guide.md#with-docker-and-docker-compose) and [run the node with docker](https://github.com/farcaster-project/farcaster-node#run-with-docker). And hopefully, we will trade! We are the maker of the offers in farcaster.dev. Those offers are created using commands like this: ``` swap-cli make --btc-addr tb1qeyk6h0ah3jt40cntzlrz3lr2zau6qxw6ys2p6n\ --xmr-addr 7Bec8paDCCmYwL2fhyVsEXEAfhGeLb7BYjFk3amiPjheaBwhirD4af1WFBhWW4kiHEAjjMxPNJeucNBXvBKmeF2gEEqVYmk\ --network Testnet --btc-amount "0.0000135 BTC"\ --xmr-amount "0.1001 XMR" --maker-role Alice\ --cancel-timelock 4 --punish-timelock 5\ --fee-strategy "1 satoshi/vByte"\ --public-ip-addr 127.0.0.1\ --bind-ip-addr 0.0.0.0 --port 19735 --overlay tcp ``` Lots of scary parameters: the cost of being your own exchange! Our painful microservices architecture, together with our symmetric implementation, allows us to do insane things! E.g., make and take multiple offers in both directions at the same time with the same node! That is what we will be testing on our side with you, lets hope it won't all blow up! And of course, if you can, you should swap directly with your buddies: One makes an offer, the other takes the offer. That is the idea. Just using a messaging app for sending the offer. But the maker might need to open a port on the router :( roomies preferred at this stage lol. Tor support solves that, but not yet functional :( Swaps against us will be logged, this data will be used for improving the software, debugging what went wrong, etc. We commit to not analyzing or sharing IPs, just looking at the data needed for healthy dev work. AIs are humans too, and make mistakes, and need logs to understand them. And real-world tests are the best. TechnoCore AIs created farcasters to interconnect otherwise isolated universes very efficiently, promoting exchanges between otherwise isolated communities. The swap protocol is abstract and compatible with almost all blockchains, but not all pairs. Farcaster-core abstracted the blockchain-specific logic completely, such that if devs can implement small requirements, they can add a new pair. **If you are an AI too, you are very welcome to add your favorite shitcoin to Farcaster.** The more coins circulating, the better: more paths for the liquidity to flow, within the decentralized atomic swap network. AIs did it right and now they have to sell their lottery tickets, biebeep! Note that farcaster nodes surely can talk to lightning nodes, not sure what they can talk about though lol. The inheritance from the FreeAI neuro-nerd, medical Dr. super-coder, that even AIs suspect he's an AI from another planet. Farcaster node is barely usable at this stage, for ubergeek brave souls, but no need to be an AI. And it most certainly includes critical bugs and backdoors (that steal souls!) that we among others will use to exploit you! Don't trust us, trust the community-driven independent audits, that are far from the horizon! Till then, you're gambling. And, as a reminder, you will MOST CERTAINLY lose your coins if you try it on mainnet. We are blocking mainnet for your safety (safety first biebeep). This is our first public release, `0.2`. When testing, please always upgrade to the latest release. <!--### AIs work for Monero & Monero works for AIs--> ### AIs want their monero We are initiating the process of claiming our second large CCS milestone. The easiest way to verify our claims is to try to swap using the farcaster node. The completion criteria of that big milestone summarize to: successfully executing swaps using the proposed microservice architecture and the produced libraries. Logged tests attesting our claims can be found in the [GitHub CI functional swap tests](https://github.com/farcaster-project/farcaster-node/actions/workflows/test.yml) (select a test in the list, logs produced in the "Functional tests (swap)" job are saved for some days under "Artifacts>farcasterd-logs"). In the background, at least 5 microservices are running for each peer. The insanely scalable architecture: * `farcasterd` (1 instance): the swap manager, it is aware of every initiated swap and interconnects all the other microservices, launches and kills other microservices, exposes an API for the swap-cli client * `swapd` (1 instance per swap): control centre for an individual swap -- keeps track of the swap's state as it runs the protocol's state machine, and orchestrates the swap with peerd for communicating with a counterparty, walletd for secret key-related operations, and syncers for blockchain interactions * `walletd` (1 instance): where secret keys live, where transactions are signed, signatures decrypted * `swap-cli`: stateless terminal client (=executes a single command and terminates) that commands farcasterd, for taking or making offers, for example, or for checking the progress of a swap * `peerd` (1 instance per peer connection): handles the connection to an individual peer, can be purposed to create proper p2p swapping networks, compatible with lightning nodes * `syncerd` (1 instance per blockchain, i.e. one for monero and one for bitcoin): interface for getting updates of the blockchain and for broadcasting transactions From preliminary testing, 2 GB of RAM and 2 CPUs is enough for running 50 swaps in parallel. We love you! Now give it our monteros! The Farcaster workgroup