Difference between revisions of "MIP-0003"
Mochimowiki (talk | contribs) (Initial Page Creation) |
Mochimowiki (talk | contribs) (→Technical Details) |
||
Line 25: | Line 25: | ||
*** Set global var Fountain to true. | *** Set global var Fountain to true. | ||
*** Set node capability bit for C_FOUNTAIN | *** Set node capability bit for C_FOUNTAIN | ||
− | + | ```case 'r': Fountain = 1; Cbits |= C_FOUNTAIN; break;``` |
Revision as of 08:49, 22 November 2020
Contents
MIP-0003 - Add Fountain Functionality As Native Feature
Presented to the Core Contributor Team on November 21, 2020 by user sputnik
Sponsor(s)
The following Core Contributors have "sponsored" this MIP.
- Stackoverflo (talk · contribs) I think it's long overdue. I'll code it as an optional module at first and if the community agrees we'll add it to the mainline code.
NOTE: Sponsorship for these purposes means that these Core Contributors have committed to developing the code on behalf of the community if this MIP is adopted. Note: Core Contributor sponsorship is not required for a MIP to be implemented. It just makes things easier on the community.
Problem Definition
Fountain services are presently operated by the Mochimo project, and while documentation exists for how to run a Fountain Service, it would be beneficial for this to simply be a built-in optional module for the full node code.
Solution Summary
Users will add a "fountain.addr" address file to the Mochimo Full Node startup directory, and then enable an additional command-line switch on node startup, to allow it to receive and process requests as a fountain node.
Hard Fork Required
No.
Technical Details
- A global byte var "Fountain" is added to data.c to signal when the feature is enabled.
- A new capability bit "C_FOUNTAIN" is added to types.h to signal the node has fountain service enabled.
- At time of proposal CBIT 32 is available.
- A command-line switch is added to mochimo.c as follows:
- Function usage() updated to reflect new switch "r".
- Function main() switch(argv[j][1]) updated to reflect new switch "r" and:
- Set global var Fountain to true.
- Set node capability bit for C_FOUNTAIN
```case 'r': Fountain = 1; Cbits |= C_FOUNTAIN; break;```