Here’s how I’d do it:
Report:
Wherever there’s user content, add a nearby button, flag icon, or text of “report” with action to get it over to you as an admin to moderate. One idea of an action is to create a reported content collection where everytime something is reported, a new record is added. You can monitor that collection and add all sorts of relationships - which user reported it, what time, how many reports is that single post getting, etc.
Block:
Have a many-to-many relationship with users to users called something like “blocked”. Be sure to filter out all content from this relationship on whatever newsfeed or content type features you have. Also probably want a setting where users can unblock people they blocked.